Installe l'archive self-contained publiée en release du dépôt du code, amd64 ou arm64 selon la machine. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
63 lines
2.5 KiB
Bash
Executable File
63 lines
2.5 KiB
Bash
Executable File
#!/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"
|