aboutsummaryrefslogtreecommitdiff
path: root/installer/lib
Commit message (Collapse)AuthorAgeFilesLines
* refactor: extract pure RAID logic to lib/raid.sh with bats coverageCraig Jennings9 days1-0/+70
| | | | | | | | | | | | | | | | | | | | Peel the testable pieces of get_raid_level() out of the 1600-line installer monolith into installer/lib/raid.sh: - raid_valid_levels_for_count(count) — replaces the inline option-list builder in get_raid_level() - raid_is_valid(level, count) — useful for unattended-config validation - raid_usable_bytes(level, count, smallest, total) — usable-space math - raid_fault_tolerance(level, count) — max tolerable disk failures archangel now sources lib/raid.sh and uses raid_valid_levels_for_count for the fzf option list. Fzf preview subshell still inlines its own usable-bytes arithmetic (calling exported lib functions across preview subshells is fragile; left for a later pass). 30 bats tests in tests/unit/test_raid.bats cover the full enumeration table, every valid/invalid level-vs-count combo from 2 to 5 disks, mixed-size mirror, and unknown-level error paths. make test: 53/53.
* refactor: remove dead installer/lib/zfs.shCraig Jennings9 days1-377/+0
| | | | | | | | | | | | | The library was sourced but only zfs_preflight was reachable from install_zfs(); the other ten functions either had names that were never called (create_zfs_datasets, configure_zfs_pacman_hook, etc.) or were shadowed by same-named definitions in the monolithic installer/archangel (create_zfs_pool, configure_zfsbootmenu, configure_zfs_services). Inlined zfs_preflight into archangel and dropped the source line. Removes a trap where fixes appear to be "mirrored" but only one copy actually runs.
* fix: drop zroot/tmp dataset and dedup pacman snapshot hookCraig Jennings9 days1-3/+21
| | | | | | | | | | - /tmp on ZFS breaks systemd-tmpfiles-clean (statx ENOLINK on PrivateTmp paths). Use tmpfs via fstab instead; keep zroot/var/tmp. - zfs-pre-snapshot gains a 60s lockfile in /run so burst transactions (archsetup produced 357 snapshots in one run) collapse to one. Both fixes mirrored in installer/archangel and installer/lib/zfs.sh. Already applied and verified on velox.
* fix: use pbkdf2 for LUKS2 containers instead of argon2idCraig Jennings12 days1-2/+5
| | | | | GRUB's LUKS2 support only handles pbkdf2. When /boot is inside the encrypted volume, argon2id causes GRUB to reject the correct password.
* feat: default to no-color output, add --color flag to enableCraig Jennings12 days2-11/+16
| | | | Keeps logs and SSH output clean. Use archangel --color for colored output.
* refactor: rename custom/ to installer/ for clarityCraig Jennings2026-02-235-0/+1767
The custom/ directory name was an archiso implementation detail. Renamed to installer/ which clearly communicates that this directory contains the installer scripts and utilities that ship on the ISO. Updated all references in build.sh, Makefile, test-install.sh, and README.