diff options
| author | Craig Jennings <c@cjennings.net> | 2026-04-27 12:45:48 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-04-27 12:45:48 -0500 |
| commit | 8c69aaaff13da3b7d1d24ed34975e8c5b30409e6 (patch) | |
| tree | b296d568c124d1d8ca83275e8c197c1c0d53bca0 /scripts | |
| parent | 822075bf99cda84782ef04419855f6c289a6fc13 (diff) | |
| download | archangel-8c69aaaff13da3b7d1d24ed34975e8c5b30409e6.tar.gz archangel-8c69aaaff13da3b7d1d24ed34975e8c5b30409e6.zip | |
refactor: consolidate installer defaults and FILESYSTEM validation into config.sh
The installer had three sites touching FILESYSTEM: a top-level default in the monolith, a re-default block in gather_input, and a runtime validation block also in gather_input. The same scattering existed for LOCALE, KEYMAP, ENABLE_SSH, and NO_ENCRYPT. A future contributor changing one site wouldn't have known the other two existed.
Move all five defaults into the lib/config.sh declarations so config.sh is the single source of truth. Add validate_filesystem() in lib/config.sh and call it from main() between check_config and gather_input, so a typo in a config file's FILESYSTEM= fails fast before any install action runs.
The behavior change is stricter. An empty FILESYSTEM in a config file used to be silently defaulted to zfs, now it errors. Interactive mode is unaffected. select_filesystem still controls the value and already errored on cancellation.
Bats: 140 → 142. Five tests added in test_config.bats for the defaults pinning and validate_filesystem coverage. Three removed from test_archangel.bats for behavior that moved out of gather_input. Lint clean.
Diffstat (limited to 'scripts')
0 files changed, 0 insertions, 0 deletions
