#!/bin/bash # Script Bash - castopod_update.sh # Auteur : Cédric Abonnel # Description : Script de mise à jour Castopod # Version 23.12.14 # Definitions rep_save="save_castopod" sources_save=("castopod/public/media" "castopod/.env") php_bin="/usr/bin/php8.1" castopod_root="castopod" echo " -- " # Synchroniser les fichiers sources avec le dossier de sauvegarde mkdir -vp "$rep_save/" echo " -- " echo "Sauvegarde des fichiers medias" # Parcourir le tableau des sources de sauvegarde for source in "${sources_save[@]}"; do # Afficher la source de sauvegarde echo "Source de sauvegarde : $source" rsync -a "$source" "$rep_save/" done # LEGACY 23.12.14 : Suppression de l'archive TAR si elle existe. Elle n'est plus gérée. archive_file="save_castopod.tar" if [ -f "$archive_file" ]; then echo "L'archive $archive_file n'est plus gérée par le script. Seul le dossier 'save_castopod' est pris en compte." rm -v "$archive_file" fi echo " -- " # Vérifier la présence de l'archive ZIP if [[ -n $(ls castopod*.zip 2>/dev/null) ]]; then # Supprimer tous les fichiers et dossiers, sauf ceux présents dans sources_save ## Construire la commande find à partir du tableau sources_save find_command="find \"$castopod_root/\" " for source in "${sources_save[@]}"; do if [ -d "$source" ]; then ### Si c'est un dossier, exclure tous les fichiers et sous-dossiers sous ce dossier find_command+=" -type d -path \"$source\" -prune -o " elif [ -f "$source" ]; then ### Si c'est un fichier, exclure ce fichier spécifique find_command+=" -not -name \"$(basename "$source")\" -o " fi done find_command+=" -delete" ## Exécuter la commande find eval "$find_command" # Extraire le fichier ZIP de mise à jour présent dans le dossier courant echo "Mise à jour en cours de déploiement ... " unzip -o -q castopod*.zip && echo " ... terminée." # Désactiver l'archive en renommant les fichiers ZIP en ajoutant ".old" à leur nom echo "Désactivation de l'archive de mise à jour." for file in castopod*.zip; do mv "$file" "${file}.old" done # Mettre à jour le schéma de la base de données "$php_bin" castopod/spark castopod:database-update else echo "Aucune archive ZIP commençant par 'castopod' trouvée. Pas de mise à jour." fi echo " -- "