From 315a7418825041859ca13aed5c1005c362fbb177 Mon Sep 17 00:00:00 2001 From: Daylin Morgan Date: Mon, 17 Feb 2025 18:56:09 -0600 Subject: [PATCH] nix-eval-jobs only taks one argument --- pkgs/oizys/src/oizys/nix.nim | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/pkgs/oizys/src/oizys/nix.nim b/pkgs/oizys/src/oizys/nix.nim index a4bc012..c2f0183 100644 --- a/pkgs/oizys/src/oizys/nix.nim +++ b/pkgs/oizys/src/oizys/nix.nim @@ -1,7 +1,7 @@ import std/[ algorithm, json, enumerate, os, sequtils, strformat, strutils, - sugar, logging, tables, times + sugar, logging, tables, times, sets ] export tables import hwylterm, hwylterm/logging, jsony @@ -226,14 +226,16 @@ proc getSystemPathInputDrvs*(): seq[string] = proc missingDrvNixEvalJobs*(): seq[NixEvalOutput] = ## get all derivations not cached using nix-eval-jobs - var cmd = ("nix-eval-jobs") + var cmd = "nix-eval-jobs" cmd.addArgs "--flake", "--check-cache-status" - cmd.addArgs getHosts().mapIt(".#systemPaths." & it) + var output: string - let (output, _) = runCmdCaptWithSpinner( - cmd, - bb"running [b]nix-eval-jobs[/] for system paths: " & (getHosts().join(" ").bb("bold")), - ) + for host in getHosts(): + let (o, _) = runCmdCaptWithSpinner( + cmd & (getFlake() & "#systemPaths." & host), + bb"running [b]nix-eval-jobs[/] for system path: " & host.bb("bold") + ) + output.add o var cached: seq[NixEvalOutput] var ignored: seq[NixEvalOutput] @@ -245,11 +247,13 @@ proc missingDrvNixEvalJobs*(): seq[NixEvalOutput] = elif output.name.isIgnored(): ignored.add output else: - result.add output + result.add output debug "cached derivations: ", bb($cached.len, "yellow") debug "ignored derivations: ", bb($ignored.len, "yellow") + result = result.toSet().toSeq() + func fmtDrvsForNix*(drvs: seq[NixEvalOutput]): string {.inline.} = drvs.mapIt(it.drvPath & "^*").join(" ") @@ -385,9 +389,9 @@ proc build(drv: NixEvalOutput, rest: seq[string]): BuildResult = info "-> duration: " & formatDuration(result.duration) -func outputsPaths(drv: NixDerivation): seq[string] = - for _, output in drv.outputs: - result.add output.path +# func outputsPaths(drv: NixDerivation): seq[string] = +# for _, output in drv.outputs: +# result.add output.path proc reportResults(results: seq[(NixEvalOutput, BuildResult)]) = let rows = collect( @@ -412,7 +416,6 @@ proc prettyDerivation*(path: string): BbString = let drv = path.toDerivation() drv.name.trunc(maxLen) & " " & drv.hash.bb("faint") - proc nixBuildWithCache*(name: string, rest: seq[string], service: string, jobs: int, dry: bool) = ## build individual derivations not cached and push to cache