#!/bin/bash
# Script di deployment per DreamHost

# Interrompi in caso di errori
set -e

echo "Iniziando il deployment su DreamHost..."

# Variabili (da modificare)
DOMAIN="business-directory.yourdomain.com"
USERNAME="tuousername"
REMOTE_DIR="~/$DOMAIN"

# Crea l'archivio dei file
echo "Compressione dei file dell'applicazione..."
tar -czf deploy.tar.gz --exclude=venv --exclude=__pycache__ --exclude=*.pyc --exclude=.git --exclude=.idea .

# Carica l'archivio
echo "Caricamento dei file sul server..."
scp deploy.tar.gz $USERNAME@$DOMAIN:$REMOTE_DIR/

# Esegui i comandi sul server remoto
echo "Configurazione dell'applicazione sul server..."
ssh $USERNAME@$DOMAIN << EOF
    cd $REMOTE_DIR
    tar -xzf deploy.tar.gz
    rm deploy.tar.gz
    
    # Attiva l'ambiente virtuale o crealo se non esiste
    if [ ! -d "venv" ]; then
        python3 -m venv venv
    fi
    source venv/bin/activate
    
    # Installa le dipendenze
    pip install -r requirements.txt
    
    # Crea la directory tmp per il riavvio di Passenger
    mkdir -p tmp
    
    # Applica le migrazioni del database
    python apply_migrations.py
    
    # Imposta i permessi corretti
    chmod -R 755 .
    chmod -R 777 instance
    
    # Riavvia l'applicazione Passenger
    touch tmp/restart.txt
    
    echo "Deployment completato con successo!"
EOF

# Rimuovi l'archivio locale
rm deploy.tar.gz

echo "Script di deployment completato."