#!/bin/bash # --- Configurazione --- DIST_PATH="www" # Solitamente Ionic usa 'www' o 'dist/app-name' APP_NAME="CantiCristiani" echo "๐Ÿš€ Inizio procedura di deploy PWA per: $APP_NAME" # 1. Verifica dipendenze if ! [ -x "$(command -v npm)" ]; then echo "โŒ Errore: npm non รจ installato." >&2 exit 1 fi # 1.5 Aggiornamento Versione VERSION=$(date +'%Y.%m.%d.%H%M') echo "export const VERSION = '$VERSION';" > src/app/version.ts echo "๐Ÿท๏ธ Versione aggiornata a: $VERSION" # 2. Build dell'applicazione echo "๐Ÿ“ฆ Compilazione in corso (Production Build)..." if ! npm run build -- --configuration=production --base-href=/; then echo "โŒ Errore: La compilazione รจ fallita. Controlla gli errori sopra." exit 1 fi # Verifico se la cartella www esiste (Ionic/Angular) if [ ! -d "www" ]; then # Se non c'รจ www, cerco in dist/ DIST_PATH=$(ls -d dist/*/ 2>/dev/null | head -n 1) if [ -z "$DIST_PATH" ]; then echo "โŒ Errore: Cartella di build non trovata. Controlla il comando 'npm run build'." exit 1 fi fi echo "โœ… Build completata con successo in: $DIST_PATH" # --- Genera version.json per il polling PWA --- BUILD_TIMESTAMP=$(date +%s)000 echo "{\"version\":\"$VERSION\",\"buildTime\":$BUILD_TIMESTAMP}" > www/version.json echo "๐Ÿ“„ Generato version.json: v$VERSION (timestamp: $BUILD_TIMESTAMP)" # 2.5 In locale usiamo la root echo "๐Ÿ“ Build pronta nella root..." # Nessuna sottocartella ionic necessaria in locale # Nessun redirect necessario in locale # 3. Recupero IP locale per connessione da cellulare IP_ADDRESS=$(ipconfig getifaddr en0 || ipconfig getifaddr en1 || hostname -I | awk '{print $1}') if [ -z "$IP_ADDRESS" ]; then IP_ADDRESS="localhost" fi echo "" echo "--------------------------------------------------------" echo "๐Ÿ“ฑ INSTALLAZIONE SU CELLULARE:" echo "1. Assicurati che il cellulare sia sulla stessa rete Wi-Fi." echo "2. Apri il browser (Chrome su Android, Safari su iOS)." echo "3. Vai all'indirizzo: http://\$IP_ADDRESS:8080/" echo " โš ๏ธ NOTA: Per usare il MICROFONO su cellulare, i browser richiedono HTTPS." echo " Puoi usare uno strumento come 'ngrok' o 'local-ssl-proxy' per testarlo con HTTPS." echo "4. Una volta caricata l'app:" echo " - Android: Clicca sui 3 puntini -> 'Installa app' o 'Aggiungi a home'." echo " - iOS: Clicca l'icona 'Condividi' (quadrato con freccia) -> 'Aggiungi a schermata Home'." echo "--------------------------------------------------------" echo "" # 4. Avvio server locale per test immediato echo "๐ŸŒ Liberazione porta 8080 (se occupata)..." lsof -ti:8080 | xargs kill -9 2>/dev/null || true echo "๐ŸŒ Avvio server di distribuzione su http://$IP_ADDRESS:8080/ ..." echo "premi CTRL+C per fermare il server." npx http-server "$DIST_PATH" -p 8080 -c-1 --proxy "http://localhost:8080?"