From 530ae7d44db09a8e0baea4193c543129efa6922b Mon Sep 17 00:00:00 2001 From: Conor Budworth Date: Sun, 9 Nov 2025 03:44:23 +0100 Subject: [PATCH] Update install_arch_solphyr.sh --- install_arch_solphyr.sh | 43 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/install_arch_solphyr.sh b/install_arch_solphyr.sh index 8cc984e..8ffb854 100644 --- a/install_arch_solphyr.sh +++ b/install_arch_solphyr.sh @@ -14,10 +14,43 @@ NO_PROMPT=0 [[ ! -f .env ]] && { warn ".env missing, creating from template"; cp .env.template .env 2>/dev/null || touch .env; } source .env || true -prompt_var(){ local n=$1 t=$2 d="${!n:-}"; [[ $NO_PROMPT == 1 ]] && { info "Using $n=$d"; return; } -read -e -p "$t [$d]: " i; [[ -n $i ]] && eval "$n=\"\$i\""; } -prompt_secret(){ local n=$1 t=$2 d="${!n:-}"; if [[ -z $d ]]; then read -s -p "$t: " i; echo; eval "$n=\"\$i\""; else info "Using $n from .env"; fi; } -save_env(){ local n=$1 v="${!n}"; sed -i "/^$n=/d" .env; echo "$n=\"$v\"" >> .env; } +# --- Safe prompting helpers --- +prompt_var() { + 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 + fi + read -e -p "$prompt_text [${default_val}]: " input + if [[ -n "$input" ]]; then + eval "$var_name=\"\$input\"" + fi +} + +prompt_secret() { + local var_name="$1" + local prompt_text="$2" + local default_val + default_val="$(eval "echo \${$var_name:-}")" + if [[ -z "$default_val" ]]; then + read -s -p "$prompt_text: " input + echo + eval "$var_name=\"\$input\"" + else + info "Using $var_name from .env" + fi +} + +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 +} # --- Gather configuration --- prompt_var HOSTNAME "Hostname"; prompt_var USERNAME "Username"; prompt_var KEYMAP "Keymap" @@ -144,7 +177,7 @@ cat <