#!/bin/bash
source _common.sh
source /usr/share/yunohost/helpers

ynh_script_progression "Copie des sources de l'application..."
cp -a "$YNH_APP_BASEDIR/sources/." "$install_dir/"

ynh_script_progression "Création du virtualenv Python et installation des dépendances..."
python3 -m venv "$install_dir/venv"
"$install_dir/venv/bin/pip" install --upgrade pip wheel --quiet
"$install_dir/venv/bin/pip" install -r "$install_dir/requirements.txt" --quiet

ynh_script_progression "Création de la structure de données..."
mkdir -p "$data_dir/keys" "$data_dir/logs"

ynh_script_progression "Génération des secrets..."
secret_key=$(ynh_string_random --length=64)
api_token=$(ynh_string_random --length=64)
ynh_app_setting_set --key=secret_key --value="$secret_key"
ynh_app_setting_set --key=api_token --value="$api_token"

ynh_script_progression "Génération du fichier de configuration..."
ynh_config_add --template="app.conf" --destination="$install_dir/config.py"

ynh_script_progression "Initialisation de la base de données..."
"$install_dir/venv/bin/python3" "$install_dir/init_db.py" "$install_dir/config.py"

ynh_script_progression "Configuration des permissions..."
chown -R "$app:$app" "$install_dir" "$data_dir"
chmod 600 "$install_dir/config.py"
chmod 700 "$data_dir/keys"

ynh_script_progression "Ajout des règles sudo..."
ynh_config_add --template="sudoers" --destination="/etc/sudoers.d/$app"
chmod 440 "/etc/sudoers.d/$app"

ynh_script_progression "Configuration du service systemd..."
ynh_config_add_systemd
yunohost service add "$app" \
    --description="Backup Manager ($instance_name)" \
    --log="$data_dir/logs/backupmanager.log"

ynh_script_progression "Configuration de nginx..."
ynh_config_add_nginx

ynh_script_progression "Démarrage du service..."
ynh_systemctl --action="start" --service="$app"

ynh_script_progression "Installation terminée !"
ynh_print_info "Token API : $api_token"
ynh_print_info "Conservez ce token, il ne sera plus affiché."
