Compare commits
No commits in common. "91588d842e3b74e14cc8f7b718aaffeffdf63838" and "bb001830e4459672da05af4a8f32fc0c019ffaa4" have entirely different histories.
91588d842e
...
bb001830e4
|
@ -1,19 +1,27 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Script Bash - castopod_update.sh
|
# Obtenir la date et l'heure actuelles
|
||||||
# Auteur : Cédric Abonnel
|
current_date=$(date +%Y%m%d_%H%M%S)
|
||||||
|
|
||||||
# Description : Script de mise à jour Castopod
|
|
||||||
|
|
||||||
# Version 23.12.14
|
|
||||||
|
|
||||||
# Definitions
|
# Definitions
|
||||||
|
archive_save="save_castopod.tar"
|
||||||
rep_save="save_castopod"
|
rep_save="save_castopod"
|
||||||
sources_save=("castopod/public/media" "castopod/.env")
|
sources_save=("castopod/public/media" "castopod/.env")
|
||||||
php_bin="/usr/bin/php8.1"
|
|
||||||
castopod_root="castopod"
|
|
||||||
|
|
||||||
|
|
||||||
|
# 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 " -- "
|
echo " -- "
|
||||||
|
|
||||||
# Synchroniser les fichiers sources avec le dossier de sauvegarde
|
# Synchroniser les fichiers sources avec le dossier de sauvegarde
|
||||||
|
@ -30,53 +38,25 @@ for source in "${sources_save[@]}"; do
|
||||||
rsync -a "$source" "$rep_save/"
|
rsync -a "$source" "$rep_save/"
|
||||||
done
|
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 " -- "
|
echo " -- "
|
||||||
|
|
||||||
# Vérifier la présence de l'archive ZIP
|
# Vérifier la présence de l'archive ZIP
|
||||||
if [[ -n $(ls castopod*.zip 2>/dev/null) ]]; then
|
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
|
||||||
|
|
||||||
# Supprimer tous les fichiers et dossiers, sauf ceux présents dans sources_save
|
# Extraire le fichier ZIP présent dans le dossier courant
|
||||||
## Construire la commande find à partir du tableau sources_save
|
unzip -o -q castopod*.zip
|
||||||
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
|
# 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
|
for file in castopod*.zip; do
|
||||||
mv "$file" "${file}.old"
|
mv "$file" "${file}.old"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
# Mettre à jour le schéma de la base de données
|
# Mettre à jour le schéma de la base de données
|
||||||
"$php_bin" castopod/spark castopod:database-update
|
/usr/bin/php8.1 castopod/spark castopod:database-update
|
||||||
|
|
||||||
|
|
||||||
else
|
else
|
||||||
|
@ -85,3 +65,23 @@ fi
|
||||||
|
|
||||||
echo " -- "
|
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 " -- "
|
|
@ -1,62 +0,0 @@
|
||||||
# NOM
|
|
||||||
|
|
||||||
castopod_update - Mise à jour de CASTOPOD
|
|
||||||
|
|
||||||
# SYNOPSIS
|
|
||||||
|
|
||||||
**castopod_update** [OPTION]
|
|
||||||
|
|
||||||
# DESCRIPTION
|
|
||||||
|
|
||||||
Le script **castopod_update** permet de mettre à jour le dossier Web de CASTOPOD en utilisant le fichier de mise à jour au format ZIP fourni.
|
|
||||||
|
|
||||||
## OPTIONS
|
|
||||||
|
|
||||||
- Aucune option n'est nécessaire pour exécuter le script.
|
|
||||||
|
|
||||||
## CONFIGURATION
|
|
||||||
|
|
||||||
Le script a sa propre configuration qui n'est pas modifiable.
|
|
||||||
|
|
||||||
Le dossier Web de CASTOPOD doit être nommé `castopod`.
|
|
||||||
|
|
||||||
Le script doit être positionné au même niveau que le dossier Web de CASTOPOD.
|
|
||||||
|
|
||||||
Le dossier `save_castopod` contient une copie des données de CASTOPOD, qui est rafraîchie au début de l'exécution du script. S'il n'existe pas, il sera créé.
|
|
||||||
|
|
||||||
L'archive de mise à jour doit être spécifiquement nommée `castopod*.zip` et doit être positionnée au même niveau que le script et le dossier Web de CASTOPOD.
|
|
||||||
|
|
||||||
Le script utilise `php8.1` pour effectuer des tâches de maintenance.
|
|
||||||
|
|
||||||
## PRÉREQUIS
|
|
||||||
|
|
||||||
Téléchargez l'archive de mise à jour disponible sur le site https://castopod.org/.
|
|
||||||
|
|
||||||
# EXEMPLES
|
|
||||||
|
|
||||||
Pour exécuter le script sans aucune option :
|
|
||||||
|
|
||||||
```
|
|
||||||
castopod_update
|
|
||||||
```
|
|
||||||
|
|
||||||
# VERSIONS
|
|
||||||
|
|
||||||
Version 23.12.1
|
|
||||||
- Messages des logs améliorés avec plus de détails lors de l'utilisation de 'cp'.
|
|
||||||
|
|
||||||
Version 23.12.14
|
|
||||||
- Suppression de l'archive TAR du dossier `save_castopod`.
|
|
||||||
|
|
||||||
|
|
||||||
## AUTEUR
|
|
||||||
|
|
||||||
Ce script a été créé par Cédric Abonnel.
|
|
||||||
|
|
||||||
## RAPPORT D'ERREURS
|
|
||||||
|
|
||||||
Pour signaler des erreurs ou des problèmes : https://git.abonnel.fr/cedricAbonnel/scripts-bash
|
|
||||||
|
|
||||||
# REMARQUES
|
|
||||||
|
|
||||||
Ce script est fourni tel quel, sans aucune garantie. Vous êtes libre de le modifier et de le distribuer selon les termes de la licence applicable.
|
|
Loading…
Reference in New Issue