diff --git a/meat.nu b/meat.nu index 51dc8e3..a7373e9 100644 --- a/meat.nu +++ b/meat.nu @@ -43,7 +43,19 @@ def nix-conf-attr []: nothing -> string { } def nix-build-nom [out: string, source: string, attr: string, extras: list = []] { - ^nix-build --log-format internal-json -v --out-link $out $source -A $attr ...$extras out+err>| ^$env.MONITOR --json + if ($env.MONITOR? | is-empty) { + ^nix-build --out-link $out $source -A $attr ...$extras + } else { + ^nix-build --log-format internal-json -v --out-link $out $source -A $attr ...$extras out+err>| ^$env.MONITOR --json + } +} + +def differ-step [build: string] { + if ($env.DIFFER? | is-empty) { + meat-print " (no DIFFER set; skipping diff)" + } else { + ^$env.DIFFER /nix/var/nix/profiles/system $build + } } def activate [build_path: string] { @@ -54,7 +66,7 @@ def do-build [extras: list = []] { let tmpdir = ^mktemp -d -t "meat-build.XXXXXX" | str trim let build = $"($tmpdir)/build" nix-build-nom $build $"($env.MEATS)/entry.nix" (system-attr) $extras - ^$env.DIFFER /nix/var/nix/profiles/system $build + differ-step $build activate $build try { rm $build } } diff --git a/nix/default.nix b/nix/default.nix index 10216e6..4b5d5ff 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -25,8 +25,8 @@ stdenvNoCC.mkDerivation { mkdir -p $out/bin makeBinaryWrapper ${nushell}/bin/nu $out/bin/meat \ --add-flags "$out/share/meat/meat.nu" \ - --set DIFFER ${lib.makeBinPath [ differ ]} \ - --set MONITOR ${lib.makeBinPath [ monitor ]} + --set DIFFER ${lib.getExe differ} \ + --set MONITOR ${lib.getExe monitor} runHook postInstall ''; }