55 lines
1.8 KiB
Bash
Executable File
55 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
LOG="/home/debian/Gestion_sondes/Logs/update_product.log"
|
|
REPO_PATH="/home/debian/Gestion_sondes"
|
|
BACKUP_DIR="$REPO_PATH/Archives"
|
|
DATE=$(date '+%Y-%m-%d %H:%M:%S')
|
|
|
|
echo "[$DATE] 🔄 Lancement du script de mise à jour" >> "$LOG"
|
|
|
|
cd "$REPO_PATH" || { echo "❌ Dossier introuvable : $REPO_PATH" >> "$LOG"; exit 1; }
|
|
|
|
# Création du dossier d'archives s'il n'existe pas
|
|
mkdir -p "$BACKUP_DIR"
|
|
|
|
# Trouver le dernier numéro de version
|
|
VERSION=0
|
|
for f in "$BACKUP_DIR"/product_backup_*.tar.gz; do
|
|
if [[ $f =~ product_backup_([0-9]+)\.tar\.gz ]]; then
|
|
num=${BASH_REMATCH[1]}
|
|
if (( num > VERSION )); then
|
|
VERSION=$num
|
|
fi
|
|
fi
|
|
done
|
|
VERSION=$((VERSION + 1))
|
|
VERSION_PADDED=$(printf "%02d" $VERSION)
|
|
|
|
# Sauvegarde du dossier actuel
|
|
BACKUP_FILE="$BACKUP_DIR/product_backup_$VERSION_PADDED.tar.gz"
|
|
tar -czf "$BACKUP_FILE" . --exclude=".git" >> "$LOG" 2>&1
|
|
echo "[$DATE] 💾 Sauvegarde enregistrée : $BACKUP_FILE" >> "$LOG"
|
|
|
|
# Vérifie s'il y a une fusion en cours
|
|
if [ -d .git ] && [ -f .git/MERGE_HEAD ]; then
|
|
echo "[$DATE] ❌ Fusion en cours détectée. Abandon automatique." >> "$LOG"
|
|
echo "➡️ Lancez 'git merge --abort' manuellement si besoin." >> "$LOG"
|
|
exit 1
|
|
fi
|
|
|
|
# Récupération des dernières modifications distantes
|
|
git fetch origin >> "$LOG" 2>&1
|
|
|
|
# Réinitialisation de la branche product sur la version distante
|
|
git checkout product >> "$LOG" 2>&1
|
|
git reset --hard origin/product >> "$LOG" 2>&1
|
|
|
|
# Fusion directe depuis origin/develop
|
|
git merge origin/develop -m "🧩 Merge auto develop → product" >> "$LOG" 2>&1
|
|
|
|
# Push vers le dépôt distant
|
|
git push origin product >> "$LOG" 2>&1
|
|
|
|
DATE_END=$(date '+%Y-%m-%d %H:%M:%S')
|
|
echo "[$DATE_END] ✅ Mise à jour terminée avec succès (v$VERSION_PADDED)" >> "$LOG"
|