fix: enhance prompt_var function to support optional_path validation for SSH key inputs

This commit is contained in:
S
2026-03-02 08:52:29 -05:00
parent de48dad967
commit 9afd4ee537

View File

@@ -125,7 +125,7 @@ prompt_var() {
fi fi
# Optional fields accept any value including empty # Optional fields accept any value including empty
if [[ "$validation" == "optional" ]]; then if [[ "$validation" == "optional" ]] || [[ "$validation" == "optional_path" && -z "$value" ]]; then
break break
fi fi
@@ -174,6 +174,10 @@ prompt_var() {
if validate_db_type "$value"; then break; fi if validate_db_type "$value"; then break; fi
printf '%b Invalid: must be sqlite3, mysql, postgres, or mssql%b\n' "$C_RED" "$C_RESET" printf '%b Invalid: must be sqlite3, mysql, postgres, or mssql%b\n' "$C_RED" "$C_RESET"
;; ;;
optional_path)
if validate_optional_path "$value"; then break; fi
printf '%b Invalid: must be a full path starting with / or ~/ (not just a filename)%b\n' "$C_RED" "$C_RESET"
;;
nonempty|*) nonempty|*)
if validate_nonempty "$value"; then break; fi if validate_nonempty "$value"; then break; fi
printf '%b Invalid: value cannot be empty%b\n' "$C_RED" "$C_RESET" printf '%b Invalid: value cannot be empty%b\n' "$C_RED" "$C_RESET"
@@ -231,14 +235,14 @@ prompt_var "UNRAID_IP" "Static IP of Unraid server"
prompt_var "UNRAID_SSH_USER" "SSH username for Unraid" nonempty "" "UNRAID SERVER" prompt_var "UNRAID_SSH_USER" "SSH username for Unraid" nonempty "" "UNRAID SERVER"
prompt_var "UNRAID_SSH_PORT" "SSH port" port "22" "UNRAID SERVER" prompt_var "UNRAID_SSH_PORT" "SSH port" port "22" "UNRAID SERVER"
prompt_var "UNRAID_GITEA_DATA_PATH" "Absolute path on NVMe for Gitea data" path "" "UNRAID SERVER" prompt_var "UNRAID_GITEA_DATA_PATH" "Absolute path on NVMe for Gitea data" path "" "UNRAID SERVER"
prompt_var "UNRAID_SSH_KEY" "Absolute path to SSH private key, e.g. /Users/you/.ssh/id_ed25519 (empty = ssh-agent)" optional "" "UNRAID SERVER" prompt_var "UNRAID_SSH_KEY" "FULL path to SSH key (e.g. /Users/you/.ssh/id_ed25519), empty = use default keys" optional_path "" "UNRAID SERVER"
# --- FEDORA SERVER --- # --- FEDORA SERVER ---
prompt_var "FEDORA_IP" "Static IP of Fedora server" ip "" "FEDORA SERVER" prompt_var "FEDORA_IP" "Static IP of Fedora server" ip "" "FEDORA SERVER"
prompt_var "FEDORA_SSH_USER" "SSH username for Fedora" nonempty "" "FEDORA SERVER" prompt_var "FEDORA_SSH_USER" "SSH username for Fedora" nonempty "" "FEDORA SERVER"
prompt_var "FEDORA_SSH_PORT" "SSH port" port "22" "FEDORA SERVER" prompt_var "FEDORA_SSH_PORT" "SSH port" port "22" "FEDORA SERVER"
prompt_var "FEDORA_GITEA_DATA_PATH" "Absolute path on NVMe for Gitea data" path "" "FEDORA SERVER" prompt_var "FEDORA_GITEA_DATA_PATH" "Absolute path on NVMe for Gitea data" path "" "FEDORA SERVER"
prompt_var "FEDORA_SSH_KEY" "Absolute path to SSH private key, e.g. /Users/you/.ssh/id_ed25519 (empty = ssh-agent)" optional "" "FEDORA SERVER" prompt_var "FEDORA_SSH_KEY" "FULL path to SSH key (e.g. /Users/you/.ssh/id_ed25519), empty = use default keys" optional_path "" "FEDORA SERVER"
# --- DOCKER NETWORKING (macvlan) --- # --- DOCKER NETWORKING (macvlan) ---
prompt_var "UNRAID_MACVLAN_PARENT" "Unraid host NIC (e.g. br0, eth0)" nonempty "" "DOCKER NETWORKING" prompt_var "UNRAID_MACVLAN_PARENT" "Unraid host NIC (e.g. br0, eth0)" nonempty "" "DOCKER NETWORKING"