invoke monitor directly
This commit is contained in:
parent
a93a51c997
commit
0370070805
1 changed files with 12 additions and 7 deletions
19
meat.nu
19
meat.nu
|
|
@ -42,14 +42,17 @@ def nix-conf-attr []: nothing -> string {
|
|||
$"nixosConfigurations.(hn).config.environment.etc.\"nix/nix.conf\""
|
||||
}
|
||||
|
||||
def monitor-available []: nothing -> bool {
|
||||
let monitor = $env.MONITOR? | default ""
|
||||
(not ($monitor | is-empty)) and (not (which $monitor | is-empty))
|
||||
}
|
||||
|
||||
def nix-build-nom [out: string, build_args: list<string>] {
|
||||
if ($env.MONITOR? | is-empty) {
|
||||
^nix-build --out-link $out ...$build_args
|
||||
if (monitor-available) {
|
||||
^$env.MONITOR build ...$build_args --out-link $out
|
||||
} else {
|
||||
^nix-build --log-format internal-json --out-link $out ...$build_args out+err>| ^$env.MONITOR --json
|
||||
^nix-build ...$build_args --out-link $out
|
||||
}
|
||||
# Piping to MONITOR masks nix-build's exit code, so detect failure by the
|
||||
# absence of the out-link.
|
||||
if not ($out | path exists) {
|
||||
error make { msg: "nix-build produced no output" }
|
||||
}
|
||||
|
|
@ -241,10 +244,12 @@ def cmd-ritual [] {
|
|||
let build = $"($tmpdir)/build"
|
||||
try {
|
||||
warm-pins
|
||||
nix-build-nom $nix_conf [$"($meats)/entry.nix" "-A" (nix-conf-attr)]
|
||||
let nix_conf_drv = ^nix-instantiate $"($meats)/entry.nix" -A (nix-conf-attr) | lines | last | str trim
|
||||
nix-build-nom $nix_conf [$nix_conf_drv]
|
||||
meat-print "CONSUMING MEATS.."
|
||||
with-env { NIX_USER_CONF_FILES: $nix_conf } {
|
||||
nix-build-nom $build [$"($meats)/entry.nix" "-A" (system-attr)]
|
||||
let build_drv = ^nix-instantiate $"($meats)/entry.nix" -A (system-attr) | lines | last | str trim
|
||||
nix-build-nom $build [$build_drv]
|
||||
}
|
||||
^$env.DIFFER /nix/var/nix/profiles/system $build
|
||||
activate $build
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue