1
0
Fork 0
mirror of https://github.com/YunoHost/apps.git synced 2024-09-03 20:06:07 +02:00
apps/tools/app_generator/templates/restore.j2
2024-04-02 23:12:54 +02:00

132 lines
4.8 KiB
Django/Jinja

#!/bin/bash
### App file generated with YoloGen, the Yunohost app generator, version {{ data['GENERATOR_VERSION'] }}.
{% if data.generator_mode == 'tutorial' -%} # This is the tutorial version of the app.
# It contains extra commands to explain what should be done in case you want to adjust some part of the script.
# Once you are done, you may remove them.
{% endif %}
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
# Keep this path for calling _common.sh inside the execution's context of backup and restore scripts
source ../settings/scripts/_common.sh
source /usr/share/yunohost/helpers
{% if data.install_dir %}
#=================================================
# RESTORE THE APP MAIN DIR
#=================================================
ynh_script_progression --message="Restoring the app main directory..." --weight=1
ynh_restore_file --origin_path="$install_dir"
{% if data.generator_mode == 'tutorial' -%}
# $install_dir will automatically be initialized with some decent
# permission by default ... however, you may need to recursively reapply
# ownership to all files such as after the ynh_setup_source step
{% endif %}
chown -R $app:www-data "$install_dir"
{% endif %}
{% if data.data_dir -%}
#=================================================
# RESTORE THE DATA DIRECTORY
#=================================================
ynh_script_progression --message="Restoring the data directory..." --weight=1
ynh_restore_file --origin_path="$data_dir" --not_mandatory
# (Same as for install dir)
chown -R $app:www-data "$data_dir"
{% endif %}
{% if data.database -%}
#=================================================
# RESTORE THE MYSQL DATABASE
#=================================================
{% if data.datase == 'mysql' -%}
ynh_script_progression --message="Restoring the MySQL database..." --weight=1
ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./db.sql
{% endif %}
{% if data.database == 'postgresql' -%}
ynh_script_progression --message="Restoring the PostgreSQL database..." --weight=1
ynh_psql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./db.sql
{% endif %}
{% endif %}
#=================================================
# RESTORE SYSTEM CONFIGURATIONS
#=================================================
ynh_script_progression --message="Restoring system configurations related to $app..." --weight=1
# This should be a symetric version of what happens in the install script
{% if data.main_technology == "php" -%}
ynh_restore_file --origin_path="/etc/php/$phpversion/fpm/pool.d/$app.conf"
{% endif %}
ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf"
{% if data.main_technology not in ["php", "none"] -%}
ynh_restore_file --origin_path="/etc/systemd/system/$app.service"
systemctl enable $app.service --quiet
yunohost service add $app --log="/var/log/$app/$app.log"
{% endif %}
{% if data.use_logrotate -%}
ynh_restore_file --origin_path="/etc/logrotate.d/$app"
{% endif %}
{% if data.use_fail2ban -%}
ynh_restore_file --origin_path="/etc/fail2ban/jail.d/$app.conf"
ynh_restore_file --origin_path="/etc/fail2ban/filter.d/$app.conf"
ynh_systemd_action --action=restart --service_name=fail2ban
{% endif %}
#=================================================
# RESTORE VARIOUS FILES
#=================================================
{% if data.use_cron -%}
ynh_restore_file --origin_path="/etc/cron.d/$app"
{% endif %}
{% if data.generator_mode == 'tutorial' -%}
### For apps with huge logs, you might want to not backup logs every time:
### The mkdir call is just here in case the log directory was not backed up.
### mkdir -p "/var/log/$app"
### chown $app:www-data "/var/log/$app"
### ynh_restore_file --src_path="/var/log/$app/" --not_mandatory
###
### For other apps, the simple way is better:
{% endif %}
ynh_restore_file --origin_path="/var/log/$app/" # TODO : add custom log file option
#=================================================
# RELOAD NGINX AND PHP-FPM OR THE APP SERVICE
#=================================================
ynh_script_progression --message="Reloading NGINX web server and $app's service..." --weight=1
# Typically you only have either $app or php-fpm but not both at the same time...
{% if data.main_technology not in ["php", "none"] -%}
ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log"
{% endif %}
{% if data.main_technology == "php" -%}
ynh_systemd_action --service_name=php$phpversion-fpm --action=reload
{% endif %}
ynh_systemd_action --service_name=nginx --action=reload
#=================================================
# END OF SCRIPT
#=================================================
ynh_script_progression --message="Restoration completed for $app" --last