Update install_arch_solphyr.sh

This commit is contained in:
Conor Budworth 2025-11-09 03:55:56 +01:00
parent f6d213900a
commit 11ba338b8d

View File

@ -20,23 +20,60 @@ NO_PROMPT=0
source .env || true source .env || true
# ── Safe prompting helpers ───────────────────────────────────── # ── Safe prompting helpers ─────────────────────────────────────
# --- Safe prompting helpers ---
prompt_var() { prompt_var() {
local var_name="$1" prompt_text="$2" local var_name="$1"
local default_val; default_val="$(eval "echo \${$var_name:-}")" local prompt_text="$2"
if [[ "$NO_PROMPT" == "1" ]]; then info "Using $var_name=$default_val"; return; fi 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 read -e -p "$prompt_text [${default_val}]: " input
[[ -n "$input" ]] && eval "$var_name=\"\$input\"" local rc=$?
set -e
[[ $rc -ne 0 ]] && die "Input cancelled"
if [[ -n "$input" ]]; then
eval "$var_name=\"\$input\""
fi
return 0
} }
prompt_secret() { prompt_secret() {
local var_name="$1" prompt_text="$2" local var_name="$1"
local default_val; default_val="$(eval "echo \${$var_name:-}")" local prompt_text="$2"
if [[ -z "$default_val" ]]; then read -s -p "$prompt_text: " input; echo; eval "$var_name=\"\$input\""; else info "Using $var_name from .env"; fi 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
[[ $rc -ne 0 ]] && die "Input cancelled"
eval "$var_name=\"\$input\""
else
info "Using $var_name from .env"
fi
return 0
} }
save_env() { save_env() {
local var_name="$1" var_value; var_value="$(eval "echo \${$var_name}")" local var_name="$1"
sed -i "/^${var_name}=/d" .env; echo "${var_name}=\"${var_value}\"" >> .env local var_value
var_value="$(eval "echo \${$var_name}")"
sed -i "/^${var_name}=/d" .env
echo "${var_name}=\"${var_value}\"" >> .env
return 0
} }
# ── Gather configuration ──────────────────────────────────────── # ── Gather configuration ────────────────────────────────────────
prompt_var HOSTNAME "Hostname"; prompt_var USERNAME "Username" prompt_var HOSTNAME "Hostname"; prompt_var USERNAME "Username"
prompt_var KEYMAP "Keymap"; prompt_var TIMEZONE "Timezone"; prompt_var LOCALE "Locale" prompt_var KEYMAP "Keymap"; prompt_var TIMEZONE "Timezone"; prompt_var LOCALE "Locale"