diff --git a/setup/configure_env.sh b/setup/configure_env.sh index 2b45f37..c7f3d70 100755 --- a/setup/configure_env.sh +++ b/setup/configure_env.sh @@ -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"