#!/bin/bash # ============================================================================= # JH Photomaton — Script de mise à jour # Appelé par le CI/CD Gitea Actions (deploy.yml) # Peut aussi être exécuté manuellement : bash scripts/update.sh # ============================================================================= set -euo pipefail INSTALL_DIR="/home/pi/jh-photomaton" VENV="$INSTALL_DIR/.venv/bin/pip" echo "▶ Mise à jour du code source..." cd "$INSTALL_DIR" # Sauvegarder les modifications locales (ex: settings.yaml personnalisé) # git stash ne fail pas si rien à stasher git stash push --include-untracked --message "auto-stash avant deploy $(date +%Y%m%d-%H%M%S)" 2>/dev/null || true # Pull depuis origin/main git pull origin main # Réappliquer les modifs locales (settings.yaml, etc.) # Si conflit → les fichiers locaux prennent le dessus git stash pop 2>/dev/null || true echo "▶ Mise à jour des dépendances Python..." "$VENV" install -r "$INSTALL_DIR/requirements.txt" -q echo "▶ Redémarrage du service..." sudo /bin/systemctl restart jh-photomaton # Attendre que le service soit UP sleep 2 sudo /bin/systemctl status jh-photomaton --no-pager -l echo "" echo "✅ JH Photomaton mis à jour et redémarré." echo " Logs : sudo journalctl -u jh-photomaton -f"