diff --git a/local/bin/castopod_update.sh b/local/bin/castopod_update.sh new file mode 100644 index 0000000..64ee81f --- /dev/null +++ b/local/bin/castopod_update.sh @@ -0,0 +1,87 @@ +#!/bin/bash + +# Obtenir la date et l'heure actuelles +current_date=$(date +%Y%m%d_%H%M%S) + + +# Definitions +archive_save="save_castopod.tar" +rep_save="save_castopod" +sources_save=("castopod/public/media" "castopod/.env") + + +# Vérifier la présence d'une archive TAR +if [ -e "$archive_save" ]; then + + echo "Démarrer l'extraction de l'archive TAR" + pv "$archive_save" | tar xf - + rm "$archive_save" + + echo "Extraction terminée." +else + echo "Aucune archive TAR '$archive_save' trouvée. Pas de sauvegarde précédente trouvée." +fi + +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 + +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 .env et public/media + find castopod/ -not -name '.env' -not -path 'castopod/public/media/*' -delete + + # Extraire le fichier ZIP présent dans le dossier courant + unzip -o -q castopod*.zip + + # Désactiver l'archive en renommant les fichiers ZIP en ajoutant ".old" à leur nom + for file in castopod*.zip; do + mv "$file" "${file}.old" + done + + + # Mettre à jour le schéma de la base de données + /usr/bin/php8.1 castopod/spark castopod:database-update + + +else + echo "Aucune archive ZIP commençant par 'castopod' trouvée. Pas de mise à jour." +fi + +echo " -- " + + +# Créer une nouvelle archive compressée à partir du répertoire de sauvegarde et supprimer le répertoire + +if [ -e "$rep_save/" ]; then + + echo "Création de l'archive en cours '$archive_save'" + # Créer l'archive avec tar et afficher la progression + tar -cf - ./"$rep_save"/ -P | pv -s $(du -sb ./"$rep_save"/ | awk '{print $1}') > "$archive_save" + echo "Création de l'archive terminée." + echo " -- " + + # Supprimer le répertoire avec une barre de progression + echo "Suppression du répertoire en cours '$rep_save/'" + rm -vrf "$rep_save/" | pv -l -s $(du -a "$rep_save/" 2>/dev/null | wc -l) > /dev/null + echo "Suppression du répertoire terminée." +else + echo "Le répertoire '$rep_save/' n'existe pas. Interruption de l'opération." +fi + +echo " -- " \ No newline at end of file diff --git a/prep.sh b/prep.sh index 456dd0d..29ccb25 100755 --- a/prep.sh +++ b/prep.sh @@ -105,3 +105,13 @@ fi log "Lister les fichiers présents dans local/share/man" ls local/share/man/ -c1 >.config/files_local-share-man + + + +## Résumé des DOC + +for fichier in local/share/doc/*.md; do + echo "Résumé pour $fichier :" + awk '/DESCRIPTION/{flag=1; next} /^$/{flag=0} flag' "$fichier" + echo "..." +done