From 070c3f0a7f77ca8fa6e76789c87993d1c2f099ed Mon Sep 17 00:00:00 2001 From: atagen Date: Sun, 24 May 2026 19:52:50 +1000 Subject: [PATCH] add eval timer --- meat.nu | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/meat.nu b/meat.nu index 533927f..a03a4bc 100644 --- a/meat.nu +++ b/meat.nu @@ -42,11 +42,11 @@ def nix-conf-attr []: nothing -> string { $"nixosConfigurations.(hn).config.environment.etc.\"nix/nix.conf\"" } -def nix-build-nom [out: string, source: string, attr: string, extras: list = []] { +def nix-build-nom [out: string, build_args: list] { if ($env.MONITOR? | is-empty) { - ^nix-build --out-link $out $source -A $attr ...$extras + ^nix-build --out-link $out ...$build_args } else { - ^nix-build --log-format internal-json --out-link $out $source -A $attr ...$extras out+err>| ^$env.MONITOR --json + ^nix-build --log-format internal-json --out-link $out ...$build_args out+err>| ^$env.MONITOR --json } # Piping to MONITOR masks nix-build's exit code, so detect failure by the # absence of the out-link. @@ -71,7 +71,10 @@ def do-build [extras: list = []] { let tmpdir = ^mktemp -d -t "meat-build.XXXXXX" | str trim let build = $"($tmpdir)/build" warm-pins - nix-build-nom $build $"($env.MEATS)/entry.nix" (system-attr) $extras + let start = date now + let drv = ^nix-instantiate $"($env.MEATS)/entry.nix" -A (system-attr) ...$extras | lines | last | str trim + meat-print $"MASTICATION TAKING ((date now) - $start)" + nix-build-nom $build [$drv] differ-step $build activate $build try { rm $build } @@ -393,10 +396,10 @@ def cmd-ritual [] { let build = $"($tmpdir)/build" try { warm-pins - nix-build-nom $nix_conf $"($meats)/entry.nix" (nix-conf-attr) + nix-build-nom $nix_conf [$"($meats)/entry.nix" "-A" (nix-conf-attr)] meat-print "CONSUMING MEATS.." with-env { NIX_USER_CONF_FILES: $nix_conf } { - nix-build-nom $build $"($meats)/entry.nix" (system-attr) + nix-build-nom $build [$"($meats)/entry.nix" "-A" (system-attr)] } ^$env.DIFFER /nix/var/nix/profiles/system $build activate $build