diff options
| author | Craig Jennings <c@cjennings.net> | 2026-04-13 00:10:17 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-04-13 00:10:17 -0400 |
| commit | bc613e72238f864a597777826d1f9cc533c4cffa (patch) | |
| tree | e36ec8edf7e7965f99dacfe6b15e9ca75d70e202 /installer/lib | |
| parent | 9f6c75916cee8cb65b21b71c69f62d080818ad63 (diff) | |
| download | archangel-bc613e72238f864a597777826d1f9cc533c4cffa.tar.gz archangel-bc613e72238f864a597777826d1f9cc533c4cffa.zip | |
refactor: merge install_base and install_base_btrfs
Extract the pacstrap package list into pacstrap_packages(filesystem)
in lib/common.sh (common + filesystem-specific). install_base() now
dispatches on FILESYSTEM for both the archzfs-repo-append and the
package list. install_base_btrfs() deleted; install_btrfs() call site
updated to invoke install_base.
Old: 49 + 38 lines of ~95% copy-paste.
New: 32 lines + a 20-line pure helper.
7 bats tests cover: zfs has zfs-dkms/zfs-utils, btrfs has btrfs-progs
+ grub + grub-btrfs + snapper + snap-pac, each flavor excludes the
other's specifics, common packages are in both, unknown filesystem
returns status 1, output is one-per-line. make test: 65/65.
Diffstat (limited to 'installer/lib')
| -rw-r--r-- | installer/lib/common.sh | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/installer/lib/common.sh b/installer/lib/common.sh index dcaf071..d181e0b 100644 --- a/installer/lib/common.sh +++ b/installer/lib/common.sh @@ -57,6 +57,34 @@ require_command() { } ############################# +# Package Selection +############################# + +# Print the pacstrap package list for the given filesystem, one per line. +# Common packages first, then filesystem-specific ones. +# Returns 1 for unknown filesystem. +# +# Usage: mapfile -t pkgs < <(pacstrap_packages zfs) +pacstrap_packages() { + local fs="$1" + local common=( + base base-devel + linux-lts linux-lts-headers linux-firmware + efibootmgr + networkmanager avahi nss-mdns openssh + git vim sudo zsh nodejs npm + ttf-dejavu fzf wget inetutils wireless-regdb + ) + local fs_specific + case "$fs" in + zfs) fs_specific=(zfs-dkms zfs-utils) ;; + btrfs) fs_specific=(btrfs-progs grub grub-btrfs snapper snap-pac) ;; + *) return 1 ;; + esac + printf '%s\n' "${common[@]}" "${fs_specific[@]}" +} + +############################# # Password / Passphrase Input ############################# |
