From 4d16797051ede0b1ac7c8ba409637a7a6ac8c66e Mon Sep 17 00:00:00 2001 From: Daylin Morgan Date: Tue, 11 Feb 2025 10:24:20 -0600 Subject: [PATCH] capture the output --- pkgs/oizys/src/oizys/nix.nim | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pkgs/oizys/src/oizys/nix.nim b/pkgs/oizys/src/oizys/nix.nim index a15076f..f38ceb8 100644 --- a/pkgs/oizys/src/oizys/nix.nim +++ b/pkgs/oizys/src/oizys/nix.nim @@ -316,6 +316,11 @@ type BuildResult = object duration*: Duration successful*: bool + stdout*: string + stderr*: string + +proc show(br: BuildResult) = + error "\n" & formatStdoutStderr(br.stdout, br.stderr) func formatDuration(d: Duration): string = ## convert duration to: X minutes and Y seconds @@ -331,13 +336,16 @@ proc build(path: string, drv: NixDerivation, rest: seq[string]): BuildResult = var cmd = "nix build" cmd.addArgs path & "^*", "--no-link" cmd.addArgs rest - let buildCode = runCmd(cmd) + let (stdout, stderr, buildCode) = runCmdCapt(cmd, {CaptStdout, CaptStderr}) result.duration = now() - startTime + result.stdout = stdout + result.stderr = stderr if buildCode == 0: result.successful = true info "succesfully built: " & splitDrv(path).name else: - warn "failed to build: " & splitDrv(path).name + error "failed to build: " & splitDrv(path).name + show result info "-> duration: " & formatDuration(result.duration) func outputsPaths(drv: NixDerivation): seq[string] =