Update install_arch_solphyr.sh
This commit is contained in:
parent
100b1e7fd6
commit
4a366b248b
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user