#!/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"