netgescon-master/docs/03-scripts-automazione/sync-bidirectional.sh
Pikappa2 480e7eafbd 🎯 NETGESCON - Setup iniziale repository completo
📋 Commit iniziale con:
-  Documentazione unificata in docs/
-  Codice Laravel in netgescon-laravel/
-  Script automazione in scripts/
-  Configurazione sync rsync
-  Struttura organizzata e pulita

🔄 Versione: 2025.07.19-1644
🎯 Sistema pronto per Git distribuito
2025-07-19 16:44:47 +02:00

54 lines
1.9 KiB
Bash

#!/bin/bash
# Script di sincronizzazione bidirezionale
# Uso: ./sync-bidirectional.sh [push|pull]
MODE=${1:-push}
LOCAL_PATH="$HOME/netgescon/netgescon-laravel/"
REMOTE_USER="michele"
REMOTE_HOST="192.168.0.43"
REMOTE_PATH="/var/www/netgescon/"
case $MODE in
push)
echo "🔄 PUSH: Sincronizzazione locale -> remoto..."
if [ -f .rsyncignore ]; then
rsync -rz --delete --checksum --exclude-from=.rsyncignore \
$LOCAL_PATH $REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH
else
rsync -rz --delete --checksum --exclude='.git' --exclude='node_modules' --exclude='vendor' --exclude='storage/logs' --exclude='storage/framework' --exclude='bootstrap/cache' \
$LOCAL_PATH $REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH
fi
if [ $? -eq 0 ]; then
echo "✅ Push completato!"
echo "🔧 Aggiornamento remoto..."
ssh $REMOTE_USER@$REMOTE_HOST "cd $REMOTE_PATH && php artisan migrate --force"
fi
;;
pull)
echo "🔄 PULL: Sincronizzazione remoto -> locale..."
if [ -f .rsyncignore ]; then
rsync -rz --delete --checksum --exclude-from=.rsyncignore \
$REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH $LOCAL_PATH
else
rsync -rz --delete --checksum --exclude='.git' --exclude='node_modules' --exclude='vendor' --exclude='storage/logs' --exclude='storage/framework' --exclude='bootstrap/cache' \
$REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH $LOCAL_PATH
fi
if [ $? -eq 0 ]; then
echo "✅ Pull completato!"
echo "🔧 Aggiornamento locale..."
cd $LOCAL_PATH
composer install
php artisan migrate
fi
;;
*)
echo "Uso: $0 [push|pull]"
echo " push: Sincronizza locale -> remoto (default)"
echo " pull: Sincronizza remoto -> locale"
exit 1
;;
esac