feat(doctor): first-boot pre-activate fail flag (#83)
Some checks failed
Check / eval (push) Has been cancelled
Some checks failed
Check / eval (push) Has been cancelled
If the installer left /var/log/nomarchy-hm-preactivate.log and no Home Manager generation exists, doctor reports ✖ with the recovery one-liner (home-manager switch --flake ~/.nomarchy -b bak). Clears once a generation is present. checks.doctor covers both arms. Verified: V2 — checks.doctor green; local smoke.
This commit is contained in:
21
flake.nix
21
flake.nix
@@ -461,6 +461,27 @@
|
||||
"NOMARCHY_POWER_SUPPLY_ROOT=/tmp/fake-ps nomarchy-doctor 2>&1"
|
||||
)
|
||||
assert "MOUSE0" not in bat2, f"doctor reported Device-scope battery:\n{bat2}"
|
||||
# #83 first-boot pre-activate fail flag: log present, no HM gen → ✖.
|
||||
machine.succeed(
|
||||
"mkdir -p /var/log && "
|
||||
"echo 'error: activation failed' > /var/log/nomarchy-hm-preactivate.log"
|
||||
)
|
||||
# Bare test VM has no per-user HM profile for root.
|
||||
pre = machine.fail("nomarchy-doctor 2>&1")
|
||||
assert "pre-activat" in pre.lower() or "Home Manager generation" in pre, (
|
||||
f"doctor missing pre-activate fail line:\n{pre}"
|
||||
)
|
||||
assert "home-manager switch" in pre, f"doctor missing recovery one-liner:\n{pre}"
|
||||
# Once a generation exists, the flag clears (recovered).
|
||||
machine.succeed(
|
||||
"mkdir -p /nix/var/nix/profiles/per-user/root && "
|
||||
"ln -sfn /run/current-system "
|
||||
"/nix/var/nix/profiles/per-user/root/home-manager"
|
||||
)
|
||||
pre_ok = machine.succeed("nomarchy-doctor 2>&1")
|
||||
assert "desktop generation is present" in pre_ok, (
|
||||
f"doctor should ok when HM gen exists:\n{pre_ok}"
|
||||
)
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user