add eval timer

This commit is contained in:
atagen 2026-05-24 19:52:50 +10:00
parent f2ed3286d0
commit 070c3f0a7f

15
meat.nu
View file

@ -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<string> = []] {
def nix-build-nom [out: string, build_args: list<string>] {
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<string> = []] {
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