23 lines
620 B
Nim
23 lines
620 B
Nim
import std/osproc
|
|
import std/os
|
|
import std/streams
|
|
import std/strutils
|
|
|
|
const workingDir = currentSourcePath() / ".." / ".." / ".."
|
|
const executable = "build" / "codex"
|
|
|
|
proc startNode*(args: openArray[string], debug = false): Process =
|
|
if debug:
|
|
result = startProcess(executable, workingDir, args, options={poParentStreams})
|
|
sleep(1000)
|
|
else:
|
|
result = startProcess(executable, workingDir, args)
|
|
for line in result.outputStream.lines:
|
|
if line.contains("Started codex node"):
|
|
break
|
|
|
|
proc stop*(node: Process) =
|
|
node.terminate()
|
|
discard node.waitForExit(timeout=5_000)
|
|
node.close()
|