#!/bin/bash source _common.sh source /usr/share/yunohost/helpers #================================================= # ARRÊT DU SERVICE #================================================= ynh_script_progression "Arrêt de $app..." # Arrêter avant de remplacer les binaires, et surtout avant que les nouvelles # migrations EF Core ne s'appliquent au démarrage : deux processus sur la même base # SQLite pendant une migration est exactement ce qu'il faut éviter. ynh_systemctl --service="$app" --action="stop" --log_path="systemd" #================================================= # MISE À JOUR DES BINAIRES #================================================= ynh_script_progression "Mise à jour des fichiers..." # `ynh_setup_source` remplace le contenu d'`install_dir` par la nouvelle archive, # après vérification du sha256. # # Les données ne sont pas concernées : la base vit dans `data_dir` # (`ConnectionStrings__MaBibli` dans l'unité systemd), qui n'est touché ni ici ni par # les ressources du manifeste. C'est précisément pour cela que la base n'est pas # posée à côté du binaire — sinon chaque mise à jour l'emporterait. ynh_setup_source --dest_dir="$install_dir" chmod +x "$install_dir/$mabibli_binaire" #================================================= # CONFIGURATION NGINX ET SYSTEMD #================================================= ynh_script_progression "Mise à jour de la configuration..." ynh_config_add_nginx ynh_config_add_systemd yunohost service add "$app" --description="Bibliothèque personnelle MaBibli" #================================================= # REDÉMARRAGE DU SERVICE #================================================= ynh_script_progression "Redémarrage de $app..." # Le délai est plus large qu'à l'installation : une mise à jour peut embarquer des # migrations EF Core à appliquer sur une base déjà remplie, ce qui prend plus de # temps que la création d'un schéma vide. # # Si le démarrage échoue, YunoHost restaure la sauvegarde de sécurité prise avant la # mise à jour. Cette sauvegarde-là ne contient pas `data_dir` (le cœur saute les # répertoires de données avec `BACKUP_CORE_ONLY`) — ce qui tombe bien, puisque # `data_dir` n'a pas été touché et contient toujours la bibliothèque. ynh_systemctl --service="$app" --action="start" --log_path="systemd" \ --wait_until="Application started" --timeout=120 #================================================= # FIN DU SCRIPT #================================================= ynh_script_progression "Mise à jour de $app terminée"