Compare commits

...

2 commits

Author SHA1 Message Date
add7992106
with ouptut 2024-09-05 08:36:01 -05:00
5e7dce62cb
hope the buffer doesn't fill up 2024-09-05 08:26:36 -05:00
2 changed files with 19 additions and 5 deletions

View file

@ -19,11 +19,23 @@ proc runCmd*(cmd: string): int =
proc runCmdCapt*(cmd: string): tuple[stdout, stderr: string, exitCode: int] =
let args = cmd.splitWhitespace()
let p = startProcess(args[0], args = args[1..^1], options = {poUsePath})
result = (
readAll p.outputStream,
readAll p.errorStream,
waitForExit p
)
let ostrm = outputStream p
let errstrm = errorStream p
result.exitCode = -1
var line = newStringOfCap(120)
while true:
if ostrm.readLine(line):
result.stdout.add line & '\n'
if errstrm.readLine(line):
result.stderr.add line & '\n'
result.exitCode = peekExitCode(p)
if result.exitCode != -1: break
# result = (
# readAll p.outputStream,
# readAll p.errorStream,
# waitForExit p
# )
close p
proc runCmdCaptWithSpinner*(cmd: string, msg: string = ""): tuple[output, err: string] =

View file

@ -110,6 +110,8 @@ proc toBuildNixosConfiguration(): seq[string] =
var cmd = nixCommand("build")
cmd.addArg "--dry-run"
cmd.addArgs nixosConfigAttrs()
debug "trying with ouptut"
discard execCmd(cmd)
let (_, err) = runCmdCaptWithSpinner(cmd, "running dry run build for: " & getHosts().join(" "))
let output = parseDryRunOutput err
return output.toBuild.mapIt(it.storePath)