98 lines
3.2 KiB
Bash
98 lines
3.2 KiB
Bash
#!/bin/bash
|
|||
|
|
|
||
|
|
#=================================================
|
||
|
|
# IMPORT GENERIC HELPERS
|
||
|
|
#=================================================
|
||
|
|
|
||
|
|
source _common.sh
|
||
|
|
source /usr/share/yunohost/helpers
|
||
|
|
|
||
|
|
#=================================================
|
||
|
|
# STOP SYSTEMD SERVICE
|
||
|
|
#=================================================
|
||
|
|
ynh_script_progression "Arrêt de $app…"
|
||
|
|
|
||
|
|
# Le minuteur est arrêté aussi : un passage de collecte qui démarrerait pendant
|
||
|
|
# le remplacement des fichiers travaillerait sur un arbre à moitié écrit.
|
||
|
|
systemctl stop "$app-pipeline.timer" 2>/dev/null || true
|
||
|
|
|
||
|
|
ynh_systemctl --service="$app" --action="stop" --log_path="/var/log/$app/$app.log"
|
||
|
|
|
||
|
|
#=================================================
|
||
|
|
# DOWNLOAD, CHECK AND UNPACK SOURCE
|
||
|
|
#=================================================
|
||
|
|
ynh_script_progression "Mise à jour des fichiers…"
|
||
|
|
|
||
|
|
# --full_replace efface intégralement $install_dir. C'est sans risque ici : la
|
||
|
|
# base, le cache et l'export vivent dans $data_dir, qui n'est pas touché.
|
||
|
|
ynh_setup_source --dest_dir="$install_dir" --full_replace
|
||
|
|
|
||
|
|
chown -R "$app:$app" "$install_dir"
|
||
|
|
chown -R "$app:$app" "$data_dir"
|
||
|
|
|
||
|
|
#=================================================
|
||
|
|
# UPDATE CONFIGURATION
|
||
|
|
#=================================================
|
||
|
|
ynh_script_progression "Mise à jour de la configuration…"
|
||
|
|
|
||
|
|
ynh_config_add --template="env" --destination="$install_dir/.env"
|
||
|
|
chown "$app:$app" "$install_dir/.env"
|
||
|
|
chmod 600 "$install_dir/.env"
|
||
|
|
|
||
|
|
#=================================================
|
||
|
|
# REBUILD
|
||
|
|
#=================================================
|
||
|
|
ynh_script_progression "Reconstruction de l'application web (quelques minutes)…"
|
||
|
|
|
||
|
|
construire_application_web
|
||
|
|
|
||
|
|
ynh_script_progression "Reconstruction de l'environnement Python…"
|
||
|
|
|
||
|
|
construire_environnement_python
|
||
|
|
|
||
|
|
#=================================================
|
||
|
|
# DATABASE
|
||
|
|
#=================================================
|
||
|
|
if base_deja_remplie; then
|
||
|
|
ynh_script_progression "Application des migrations, données conservées…"
|
||
|
|
migrer_la_base
|
||
|
|
else
|
||
|
|
# Cas d'une base perdue ou d'une première mise à jour depuis une version
|
||
|
|
# qui la rangeait ailleurs : on repart du corpus plutôt que de laisser
|
||
|
|
# l'application sans données.
|
||
|
|
ynh_script_progression "Base absente : remplissage depuis le corpus…"
|
||
|
|
remplir_la_base
|
||
|
|
fi
|
||
|
|
|
||
|
|
#=================================================
|
||
|
|
# REAPPLY SYSTEM CONFIGURATION
|
||
|
|
#=================================================
|
||
|
|
ynh_script_progression "Mise à jour de la configuration système…"
|
||
|
|
|
||
|
|
mkdir -p "/var/log/$app"
|
||
|
|
chown -R "$app:$app" "/var/log/$app"
|
||
|
|
|
||
|
|
ynh_config_add_nginx
|
||
|
|
|
||
|
|
ynh_config_add_systemd
|
||
|
|
yunohost service add "$app" --description="$DESCRIPTION_SERVICE" \
|
||
|
|
--log="/var/log/$app/$app.log"
|
||
|
|
|
||
|
|
installer_le_minuteur
|
||
|
|
|
||
|
|
ynh_config_add_logrotate
|
||
|
|
|
||
|
|
#=================================================
|
||
|
|
# START SYSTEMD SERVICE
|
||
|
|
#=================================================
|
||
|
|
ynh_script_progression "Démarrage de $app…"
|
||
|
|
|
||
|
|
ynh_systemctl --service="$app" --action="start" --wait_until="Listening" \
|
||
|
|
--log_path="/var/log/$app/$app.log"
|
||
|
|
|
||
|
|
#=================================================
|
||
|
|
# END OF SCRIPT
|
||
|
|
#=================================================
|
||
|
|
|
||
|
|
ynh_script_progression "Mise à jour de $app terminée"
|