diff --git a/install.sh b/install.sh index d417b12..e565f28 100755 --- a/install.sh +++ b/install.sh @@ -35,20 +35,74 @@ else exit 1 fi -# 2. Setup Environment Variables -echo "Setting up environment configuration..." -if [ ! -f ".env" ]; then - if [ -f ".env.example" ]; then - cp .env.example .env - echo -e "${GREEN}Created .env from .env.example.${NC}" - echo "Please edit $SERVER_DIR/.env with your database configuration." - else - echo -e "${RED}Warning: .env.example not found.${NC}" +# 2. Setup Environment Variables (Interactive) +ENV_FILE="$SERVER_DIR/.env" +CONFIGURE=true + +if [ -f "$ENV_FILE" ]; then + echo -e "\n${GREEN}.env file already exists.${NC}" + read -p "Do you want to reconfigure it? (y/N): " RECONF + if [[ ! "$RECONF" =~ ^[Yy]$ ]]; then + CONFIGURE=false fi -else - echo ".env already exists." fi +if [ "$CONFIGURE" = true ]; then + echo -e "\n${GREEN}Configuring Environment Variables...${NC}" + echo "Press Enter to accept defaults [in brackets]" + + # Helper function for prompts + prompt_val() { + local var_name=$1 + local prompt_text=$2 + local default_val=$3 + + read -p "$prompt_text [$default_val]: " input + input=${input:-$default_val} + + # Escape special characters if necessary, simpler for now + eval "$var_name=\"$input\"" + } + + prompt_val DB_HOST "Database Host" "localhost" + prompt_val DB_USER "Database User" "bacula" + prompt_val DB_PASSWORD "Database Password" "bacula" # Default might be insecure, but user can change + prompt_val DB_NAME "Database Name" "bacula" + prompt_val DB_PORT "Database Port" "5432" + + echo "" + prompt_val SSH_HOST "Remote Bacula SSH Host" "10.10.14.82" + prompt_val SSH_USER "Remote SSH User" "root" + prompt_val SSH_PASSWORD "Remote SSH Password" "" + prompt_val SSH_KEY_PATH "Remote SSH Key Path" "" + prompt_val BACULA_CONF_DIR "Bacula Config Dir" "/etc/bacula/conf.d/clients" + + echo "" + prompt_val PORT "Application Port" "3000" + + # Write to .env + cat > "$ENV_FILE" <