Update install_arch_solphyr.sh

This commit is contained in:
Conor Budworth 2025-11-09 18:11:47 +01:00
parent 100b1e7fd6
commit 4a366b248b

View File

@ -19,24 +19,56 @@ source .env || true
# ── Prompt helpers ─────────────────────────────
prompt_var() {
local var_name="$1" prompt_text="$2"
local default_val; default_val="$(eval "echo \${$var_name:-}")"
if [[ "$NO_PROMPT" == "1" ]]; then info "Using $var_name=$default_val"; return 0; fi
local input; set +e
read -e -p "$prompt_text [${default_val}]: " input; local rc=$?; set -e
local var_name="$1"
local prompt_text="$2"
local default_val
default_val="$(eval "echo \${$var_name:-}")"
if [[ "$NO_PROMPT" == "1" ]]; then
info "Using $var_name=$default_val"
return 0
fi
local input
# disable errexit for the read itself
set +e
read -e -p "$prompt_text [${default_val}]: " input
local rc=$?
set -e
[[ $rc -ne 0 ]] && die "Input cancelled"
[[ -n "$input" ]] && eval "$var_name=\"\$input\""
if [[ -n "$input" ]]; then
eval "$var_name=\"\$input\""
fi
return 0
}
prompt_secret() {
local var_name="$1" prompt_text="$2"
local default_val; default_val="$(eval "echo \${$var_name:-}")"
local var_name="$1"
local prompt_text="$2"
local default_val
default_val="$(eval "echo \${$var_name:-}")"
if [[ -z "$default_val" ]]; then
set +e; read -s -p "$prompt_text: " input; local rc=$?; set -e; echo
set +e
read -s -p "$prompt_text: " input
local rc=$?
set -e
echo
[[ $rc -ne 0 ]] && die "Input cancelled"
eval "$var_name=\"\$input\""
else info "Using $var_name from .env"; fi
else
info "Using $var_name from .env"
fi
return 0
}
save_env() {
local var_name="$1"
local var_value
var_value="$(eval "echo \${$var_name}")"
sed -i "/^${var_name}=/d" .env
echo "${var_name}=\"${var_value}\"" >> .env
return 0
}
save_env(){ local n=$1 v; v="$(eval "echo \${$n}")"; sed -i "/^${n}=/d" .env; echo "${n}=\"${v}\"" >> .env; }
# ── Gather config ──────────────────────────────
prompt_var HOSTNAME "Hostname"; prompt_var USERNAME "Username"
@ -93,6 +125,8 @@ reflector --country "United Kingdom" --latest 20 --sort rate --save /etc/pacman.
pacstrap -K /mnt base linux linux-firmware btrfs-progs vim networkmanager sudo base-devel git
genfstab -U /mnt >> /mnt/etc/fstab
export INSTALL_YAY
# ── Configure system ───────────────────────────
arch-chroot /mnt /bin/bash <<CHROOT
set -euo pipefail
@ -114,11 +148,12 @@ sed -i 's/\(filesystems\)/encrypt btrfs \1/' /etc/mkinitcpio.conf
mkinitcpio -P
# ── systemd-boot setup ──
bootctl install
chmod 600 /boot/loader/random-seed 2>/dev/null || true
chmod 700 /boot/loader 2>/dev/null || true
chmod 700 /boot/EFI/systemd 2>/dev/null || true
chown -R root:root /boot /boot/EFI || true
bootctl install || true
# FAT32 can't store UNIX perms, so remount and fix what we can
mount -o remount,rw /boot || true
find /boot -type f -exec chmod 600 {} + 2>/dev/null || true
find /boot -type d -exec chmod 700 {} + 2>/dev/null || true
chown -R root:root /boot || true
LUKS_UUID=\$(cryptsetup luksUUID "${ROOT}")
cat <<EOF >/boot/loader/loader.conf