From a13c2142c4fc976c0e97a7391fb592d651eea182 Mon Sep 17 00:00:00 2001 From: Conor Budworth Date: Sun, 9 Nov 2025 04:36:32 +0100 Subject: [PATCH] Update install_arch_solphyr.sh --- install_arch_solphyr.sh | 55 ++++++++++++++++++++++++++++++++--------- 1 file changed, 44 insertions(+), 11 deletions(-) diff --git a/install_arch_solphyr.sh b/install_arch_solphyr.sh index 19ab567..b80ee42 100644 --- a/install_arch_solphyr.sh +++ b/install_arch_solphyr.sh @@ -19,24 +19,57 @@ 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 n=$1 v; v="$(eval "echo \${$n}")"; sed -i "/^${n}=/d" .env; echo "${n}=\"${v}\"" >> .env; } + +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 +} + # ── Gather config ────────────────────────────── prompt_var HOSTNAME "Hostname"; prompt_var USERNAME "Username"