#!/bin/bash #================================================= # GENERIC START #================================================= #================================================= # IMPORT GENERIC HELPERS #================================================= #if [ ! -e _common.sh ]; then # # Get the _common.sh file if it's not in the current directory # cp ../settings/scripts/_common.sh ./_common.sh # chmod a+rx _common.sh #fi source ../settings/scripts/_common.sh source /usr/share/yunohost/helpers #================================================= # MANAGE SCRIPT FAILURE #================================================= # Exit if an error occurs during the execution of the script ynh_abort_if_errors #================================================= # LOAD SETTINGS #================================================= ynh_script_progression --message="Loading settings..." --time --weight=1 app=$YNH_APP_INSTANCE_NAME domain=$(ynh_app_setting_get $app domain) path_url=$(ynh_app_setting_get $app path) final_path=$(ynh_app_setting_get $app final_path) db_name=$(ynh_app_setting_get $app db_name) admin=$(ynh_app_setting_get $app admin) #================================================= # CHECK IF THE APP CAN BE RESTORED #================================================= ynh_script_progression --message="Validating restoration parameters..." --time --weight=1 ynh_webpath_available $domain $path_url \ || ynh_die "Path not available: ${domain}${path_url}" test ! -d $final_path \ || ynh_die "There is already a directory: $final_path " # Check user ynh_user_exists "$admin" #================================================= # STANDARD RESTORATION STEPS #================================================= # RESTORE THE NGINX CONFIGURATION #================================================= ynh_restore_file "/etc/nginx/conf.d/$domain.d/$app.conf" #================================================= # RESTORE THE APP MAIN DIR #================================================= ynh_script_progression --message="Restoring the app main directory..." --time --weight=1 ynh_restore_file "$final_path" #================================================= # RESTORE THE MYSQL DATABASE #================================================= ynh_script_progression --message="Restoring the MySQL database..." --time --weight=1 db_pwd=$(ynh_app_setting_get $app mysqlpwd) ynh_mysql_setup_db $db_name $db_name $db_pwd ynh_mysql_connect_as $db_name $db_pwd $db_name < ./db.sql #================================================= # SPECIFIC RESTORATION #================================================= # REINSTALL DEPENDENCIES #================================================= ynh_script_progression --message="Reinstalling dependencies..." --time --weight=1 # Define and install dependencies ynh_install_app_dependencies $pkg_dependencies #Check & regen local for i in $lang ; do ynh_replace_string "# $i" "$i" /etc/locale.gen done locale-gen #================================================= # RESTORE POSTFIX ALIASES #================================================= ynh_script_progression --message="Restore Postfix aliases..." --time --weight=1 ynh_restore_file "/usr/share/yunohost/hooks/conf_regen/98-postfix_emailpoubelle" yunohost service regen-conf postfix #create an alias for deleted junk adresses if ! grep -q "devnull:/dev/null" /etc/aliases ; then cp /etc/aliases /etc/aliases.emailpoubelle.bak #backup it echo "devnull:/dev/null" | tee -a /etc/aliases newaliases fi #================================================= # RESTORE THE CRON FILE #================================================= ynh_script_progression --message="Reinstall cron job" --time --weight=1 ynh_restore_file "/etc/cron.d/$app" #================================================= # GENERIC FINALIZATION #================================================= # RELOAD NGINX & ALIASES #================================================= ynh_script_progression --message="Reloading nginx web server and php-fpm..." --time --weight=1 postmap $final_path/var/virtual ynh_systemd_action --service_name=php7.0-fpm --action=restart ynh_systemd_action --service_name=nginx --action=reload ynh_systemd_action --service_name=postfix --action=reload #================================================= # END OF SCRIPT #================================================= ynh_script_progression --message="Restoration completed for $app" --time --last