fix(build): App Defaults now override script defaults with force mode

This commit is contained in:
CanbiZ 2025-12-15 09:46:49 +01:00
parent 1fc5c031cc
commit e651c14f76

View File

@ -445,9 +445,11 @@ base_settings() {
# - Safe parser for KEY=VALUE lines from vars files # - Safe parser for KEY=VALUE lines from vars files
# - Used by default_var_settings and app defaults loading # - Used by default_var_settings and app defaults loading
# - Only loads whitelisted var_* keys # - Only loads whitelisted var_* keys
# - Optional force parameter to override existing values (for app defaults)
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
load_vars_file() { load_vars_file() {
local file="$1" local file="$1"
local force="${2:-no}" # If "yes", override existing variables
[ -f "$file" ] || return 0 [ -f "$file" ] || return 0
msg_info "Loading defaults from ${file}" msg_info "Loading defaults from ${file}"
@ -485,9 +487,13 @@ load_vars_file() {
var_val="${BASH_REMATCH[1]}" var_val="${BASH_REMATCH[1]}"
fi fi
# Set only if not already exported # Set variable: force mode overrides existing, otherwise only set if empty
if [[ "$force" == "yes" ]]; then
export "${var_key}=${var_val}"
else
[[ -z "${!var_key+x}" ]] && export "${var_key}=${var_val}" [[ -z "${!var_key+x}" ]] && export "${var_key}=${var_val}"
fi fi
fi
done <"$file" done <"$file"
msg_ok "Loaded ${file}" msg_ok "Loaded ${file}"
} }
@ -2148,7 +2154,7 @@ install_script() {
header_info header_info
echo -e "${DEFAULT}${BOLD}${BL}Using App Defaults for ${APP} on node $PVEHOST_NAME${CL}" echo -e "${DEFAULT}${BOLD}${BL}Using App Defaults for ${APP} on node $PVEHOST_NAME${CL}"
METHOD="appdefaults" METHOD="appdefaults"
load_vars_file "$(get_app_defaults_path)" load_vars_file "$(get_app_defaults_path)" "yes" # Force override script defaults
base_settings base_settings
echo_default echo_default
defaults_target="$(get_app_defaults_path)" defaults_target="$(get_app_defaults_path)"