123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- #!/bin/bash
- #=================================================
- # GENERIC START
- #=================================================
- # IMPORT GENERIC HELPERS
- #=================================================
- source ../settings/scripts/_common.sh
- source /usr/share/yunohost/helpers
- #=================================================
- # MANAGE SCRIPT FAILURE
- #=================================================
- ynh_clean_setup () {
- #### Remove this function if there's nothing to clean before calling the remove script.
- true
- }
- # Exit if an error occurs during the execution of the script
- ynh_abort_if_errors
- #=================================================
- # LOAD SETTINGS
- #=================================================
- ynh_print_info "Loading settings..."
- 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)
- #=================================================
- # CHECK IF THE APP CAN BE RESTORED
- #=================================================
- ynh_print_info "Validating restoration parameters..."
- 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 "
- #=================================================
- # STANDARD RESTORATION STEPS
- #=================================================
- # RESTORE THE NGINX CONFIGURATION
- #=================================================
- ynh_restore_file "/etc/nginx/conf.d/$domain.d/$app.conf"
- #=================================================
- # RESTORE THE APP MAIN DIR
- #=================================================
- ynh_print_info "Restoring the app main directory..."
- ynh_restore_file "$final_path"
- #=================================================
- # RECREATE THE DEDICATED USER
- #=================================================
- ynh_print_info "Recreating the dedicated system user..."
- # Create the dedicated user (if not existing)
- ynh_system_user_create $app
- #=================================================
- # RESTORE USER RIGHTS
- #=================================================
- # Restore permissions on app files
- chown -R root: $final_path
- #=================================================
- # RESTORE THE PHP-FPM CONFIGURATION
- #=================================================
- ynh_restore_file "/etc/php/7.0/fpm/pool.d/$app.conf"
- #=================================================
- # SPECIFIC RESTORATION
- #=================================================
- # REINSTALL DEPENDENCIES
- #=================================================
- ynh_print_info "Reinstalling dependencies..."
- # Define and install dependencies
- ynh_install_app_dependencies deb1 deb2
- #=================================================
- # RESTORE THE MYSQL DATABASE
- #=================================================
- ynh_print_info "Restoring the MySQL database..."
- 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
- #=================================================
- # RESTORE SYSTEMD
- #=================================================
- ynh_print_info "Restoring the systemd configuration..."
- ynh_restore_file "/etc/systemd/system/$app.service"
- systemctl enable $app.service
- #=================================================
- # ADVERTISE SERVICE IN ADMIN PANEL
- #=================================================
- yunohost service add $app --log "/var/log/$app/$app.log"
- #=================================================
- # RESTORE THE CRON FILE
- #=================================================
- ynh_restore_file "/etc/cron.d/$app"
- #=================================================
- # RESTORE THE LOGROTATE CONFIGURATION
- #=================================================
- ynh_restore_file "/etc/logrotate.d/$app"
- #=================================================
- # GENERIC FINALIZATION
- #=================================================
- # RELOAD NGINX AND PHP-FPM
- #=================================================
- ynh_print_info "Reloading nginx web server and php-fpm..."
- systemctl reload php7.0-fpm
- systemctl reload nginx
- #=================================================
- # END OF SCRIPT
- #=================================================
- ynh_print_info "Restoration completed for $app"
|