Update install_arch_solphyr.sh
This commit is contained in:
parent
f6d213900a
commit
11ba338b8d
@ -20,23 +20,60 @@ NO_PROMPT=0
|
||||
source .env || true
|
||||
|
||||
# ── Safe prompting helpers ─────────────────────────────────────
|
||||
# --- Safe prompting 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; fi
|
||||
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
|
||||
[[ -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() {
|
||||
local var_name="$1" 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
|
||||
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
|
||||
[[ $rc -ne 0 ]] && die "Input cancelled"
|
||||
eval "$var_name=\"\$input\""
|
||||
else
|
||||
info "Using $var_name from .env"
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
save_env() {
|
||||
local var_name="$1" var_value; var_value="$(eval "echo \${$var_name}")"
|
||||
sed -i "/^${var_name}=/d" .env; echo "${var_name}=\"${var_value}\"" >> .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 configuration ────────────────────────────────────────
|
||||
prompt_var HOSTNAME "Hostname"; prompt_var USERNAME "Username"
|
||||
prompt_var KEYMAP "Keymap"; prompt_var TIMEZONE "Timezone"; prompt_var LOCALE "Locale"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user