#!/bin/bash

# Chemin imposé : dans le contexte d'exécution de backup/restore, `_common.sh` n'est
# pas dans le répertoire courant.
source ../settings/scripts/_common.sh
source /usr/share/yunohost/helpers

#=================================================
# INSTANTANÉ COHÉRENT DE LA BASE
#=================================================
ynh_print_info "Capture d'une copie cohérente de la base SQLite..."

# Voir `_common.sh` pour le détail : la base est en WAL, un `cp` du seul fichier
# `.db` sauvegarderait une base tronquée. `.backup` produit un fichier unique et
# cohérent sans arrêter le service.
#
# Le service continue de tourner pendant la sauvegarde. C'est un choix assumé :
# l'API de sauvegarde en ligne de SQLite garantit la cohérence du fichier produit, et
# l'alternative — couper le service à chaque sauvegarde nocturne — coûterait une
# indisponibilité pour un gain nul.
mabibli_instantane_base "$data_dir"

#=================================================
# DÉCLARATION DES CHEMINS À SAUVEGARDER
#=================================================

ynh_backup "$install_dir"

# Emporte l'instantané cohérent. Les `mabibli.db`, `-wal` et `-shm` vivants s'y
# trouvent aussi : la restauration les ignore au profit de l'instantané.
#
# À noter : le cœur de YunoHost saute `data_dir` lors de la sauvegarde de sécurité
# qui précède une mise à jour (`BACKUP_CORE_ONLY`). Ce n'est pas gênant, une mise à
# jour ne touchant pas au répertoire de données.
ynh_backup "$data_dir"

ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf"
ynh_backup "/etc/systemd/system/$app.service"

#=================================================
# FIN DU SCRIPT
#=================================================

ynh_print_info "Sauvegarde de $app préparée. (YunoHost copie maintenant ces fichiers dans l'archive.)"
