mirror of
https://github.com/YunoHost-Apps/emailpoubelle_ynh.git
synced 2024-09-03 18:26:29 +02:00
129 lines
No EOL
4.3 KiB
Bash
129 lines
No EOL
4.3 KiB
Bash
#!/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 |