Add castopod_update

This commit is contained in:
Cédric Abonnel 2023-11-30 00:51:00 +01:00
parent fb062731fe
commit 572bb05afc
2 changed files with 97 additions and 0 deletions

View File

@ -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 " -- "

10
prep.sh
View File

@ -105,3 +105,13 @@ fi
log "Lister les fichiers présents dans local/share/man" log "Lister les fichiers présents dans local/share/man"
ls local/share/man/ -c1 >.config/files_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