123456set -u7N=/root/nina89sysgens() { nix-env -p /nix/var/nix/profiles/system --list-generations 2>/dev/null | wc -l | tr -d ' '; }10syscur() { readlink /nix/var/nix/profiles/system | sed -n 's/.*system-\([0-9][0-9]*\)-link/\1/p'; }11mkgen() { printf '{ ... }: { environment.etc."nina-gen".text = "%s"; }\n' "$1" > /etc/nixos/genmarker.nix; }1213echo "KILN_GEN_TEST_BEGIN"141516sed -i 's| ./hardware-configuration.nix | ./hardware-configuration.nix ./genmarker.nix |' /etc/nixos/configuration.nix17echo "imports now: $(grep -o 'imports = .*];' /etc/nixos/configuration.nix)"18echo "GROUND before: sysgens=$(sysgens) syscur=$(syscur)"1920echo "### G-01 apply x3 with config changes (expect generations to increment)"21mkgen A; $N apply; echo "APPLY_A_RC=$?"; echo "GROUND: sysgens=$(sysgens) syscur=$(syscur)"22mkgen B; $N apply; echo "APPLY_B_RC=$?"; echo "GROUND: sysgens=$(sysgens) syscur=$(syscur)"23mkgen C; $N apply; echo "APPLY_C_RC=$?"; echo "GROUND: sysgens=$(sysgens) syscur=$(syscur)"2425echo "### T-015 nina history (expect all system generations, current marked)"26$N history; echo "HIST_RC=$?"2728echo "### T-017 nina gen current (expect = $(syscur))"29$N gen current; echo "GENCUR_RC=$?"3031echo "### T-010 nina back (expect syscur decrements by 1)"32$N back; echo "BACK_RC=$?"; echo "GROUND after back: syscur=$(syscur)"3334echo "### T-012 nina go <newest> (return forward)"35NEWEST=$(nix-env -p /nix/var/nix/profiles/system --list-generations | awk '{print $1}' | sort -n | tail -1)36$N go "$NEWEST"; echo "GO_RC=$?"; echo "GROUND after go $NEWEST: syscur=$(syscur)"3738echo "### T-030 nina clean (keep 5; expect exit 0, no duration error)"39$N clean; echo "CLEAN_RC=$?"; echo "GROUND after clean: sysgens=$(sysgens)"4041echo "KILN_GEN_TEST_END"