diff options
| author | Craig Jennings <c@cjennings.net> | 2026-07-20 15:50:44 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-07-20 15:50:44 -0500 |
| commit | 8917f2fd17a729af55138d6240cd363887f3d83e (patch) | |
| tree | 22009e0b19eebb3b0c0d58ac755c6183bd3c93ee /scripts/testing/tests/test_boot.py | |
| parent | 71029f3235a6567d0eb76f146cb2325b314d1bcf (diff) | |
| download | archsetup-8917f2fd17a729af55138d6240cd363887f3d83e.tar.gz archsetup-8917f2fd17a729af55138d6240cd363887f3d83e.zip | |
fix(installer): make three resume-fragile steps idempotent and correct
Each of these steps misbehaves on a resume re-run or under unexpected system state, so I pulled the logic into small testable helpers and fixed the behavior.
The log-cleanup cron line was appended unconditionally. essential_services is one resume step, so a failure past that point plus a re-run stacked a second identical cron line every time. crontab_append_once now appends only when no existing line matches.
The weekly ZFS scrub timer used `zpool list | head -1`, which picks an arbitrary pool when several exist and builds the malformed unit `zfs-scrub-weekly@.timer` when none do. zfs_scrub_timer_units emits one timer per pool and nothing for no pools, so every pool is scrubbed and an absent pool warns instead of enabling a broken unit.
gamemode was enabled through `systemctl --user enable`, which the script itself documents fails at install time with no user session bus -- so gamemoded was likely left un-enabled behind a silent warning. It now wires the wants symlink by hand through enable_user_service, the same helper syncthing's block folds into.
Diffstat (limited to 'scripts/testing/tests/test_boot.py')
0 files changed, 0 insertions, 0 deletions
