feat: add conditional database prompts to configure_env.sh wizard
Add db_type validation case. After GITEA_DB_TYPE prompt, conditionally show 5 database connection prompts (host, port, name, user, passwd) when DB type is not sqlite3. Auto-suggest default port per DB type (mysql=3306, postgres=5432, mssql=1433). Update TOTAL_PROMPTS dynamically. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -170,6 +170,10 @@ prompt_var() {
|
||||
if validate_ssl_mode "$value"; then break; fi
|
||||
printf '%b Invalid: must be "letsencrypt" or "existing"%b\n' "$C_RED" "$C_RESET"
|
||||
;;
|
||||
db_type)
|
||||
if validate_db_type "$value"; then break; fi
|
||||
printf '%b Invalid: must be sqlite3, mysql, postgres, or mssql%b\n' "$C_RED" "$C_RESET"
|
||||
;;
|
||||
nonempty|*)
|
||||
if validate_nonempty "$value"; then break; fi
|
||||
printf '%b Invalid: value cannot be empty%b\n' "$C_RED" "$C_RESET"
|
||||
@@ -246,7 +250,28 @@ prompt_var "GITEA_ADMIN_PASSWORD" "Admin password (min 8 chars)"
|
||||
prompt_var "GITEA_ADMIN_EMAIL" "Admin email" email "" "GITEA SHARED CREDENTIALS"
|
||||
prompt_var "GITEA_ORG_NAME" "Organization name (e.g. mifi-llc)" nonempty "" "GITEA SHARED CREDENTIALS"
|
||||
prompt_var "GITEA_INSTANCE_NAME" "Display name for Gitea (e.g. MIFI Git)" nonempty "" "GITEA SHARED CREDENTIALS"
|
||||
prompt_var "GITEA_DB_TYPE" "Database type" nonempty "sqlite3" "GITEA SHARED CREDENTIALS"
|
||||
prompt_var "GITEA_DB_TYPE" "Database type (sqlite3, mysql, postgres, mssql)" db_type "sqlite3" "GITEA SHARED CREDENTIALS"
|
||||
|
||||
# Track DB type for conditional prompts
|
||||
COLLECTED_DB_TYPE=$(get_env_val "GITEA_DB_TYPE" "sqlite3")
|
||||
|
||||
if [[ "$COLLECTED_DB_TYPE" != "sqlite3" ]]; then
|
||||
# Determine default port based on DB type
|
||||
case "$COLLECTED_DB_TYPE" in
|
||||
mysql) db_port_default="3306" ;;
|
||||
postgres) db_port_default="5432" ;;
|
||||
mssql) db_port_default="1433" ;;
|
||||
*) db_port_default="" ;;
|
||||
esac
|
||||
prompt_var "GITEA_DB_HOST" "Database host (container IP or hostname)" nonempty "" "DATABASE"
|
||||
prompt_var "GITEA_DB_PORT" "Database port" port "$db_port_default" "DATABASE"
|
||||
prompt_var "GITEA_DB_NAME" "Database name" nonempty "gitea" "DATABASE"
|
||||
prompt_var "GITEA_DB_USER" "Database user" nonempty "gitea" "DATABASE"
|
||||
prompt_var "GITEA_DB_PASSWD" "Database password (min 8 chars)" password "" "DATABASE"
|
||||
# Update total for the 5 DB prompts
|
||||
TOTAL_PROMPTS=$((TOTAL_PROMPTS + 5))
|
||||
fi
|
||||
|
||||
prompt_var "GITEA_VERSION" "Gitea Docker image tag" nonempty "1.25" "GITEA SHARED CREDENTIALS"
|
||||
prompt_var "ACT_RUNNER_VERSION" "act_runner version" nonempty "0.3.0" "GITEA SHARED CREDENTIALS"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user