123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- #!/bin/bash
- #=================================================
- # GENERIC START
- #=================================================
- # IMPORT GENERIC HELPERS
- #=================================================
- 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_print_info "Loading settings..."
- app=$YNH_APP_INSTANCE_NAME
- final_path=$(ynh_app_setting_get $app final_path)
- #=================================================
- # CHECK IF THE APP CAN BE RESTORED
- #=================================================
- ynh_print_info "Validating restoration parameters..."
- test ! -d $final_path \
- || ynh_die "There is already a directory: $final_path "
- #=================================================
- # STANDARD RESTORATION STEPS
- #=================================================
- #=================================================
- # RESTORE THE APP MAIN DIR
- #=================================================
- ynh_print_info "Restoring the app main directory..."
- ynh_restore_file "$final_path"
- ynh_restore_file "/etc/sudoers.d/${app}_ynh"
- ynh_restore_file "/usr/local/bin/$service_name-loadcubefile.sh"
- ynh_restore_file "/etc/yunohost/hooks.d/90-vpnclient.tpl"
- ynh_restore_file "/etc/openvpn/client.conf.tpl"
- ynh_restore_file "/etc/openvpn/client.conf.tpl.restore"
- ynh_restore_file "/etc/openvpn/keys/"
- ynh_restore_file "/usr/local/bin/$service_name"
- ynh_restore_file "/usr/local/bin/$service_checker_name.sh"
- #=================================================
- # 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 $app: $final_path
- #=================================================
- # SPECIFIC RESTORATION
- #=================================================
- # REINSTALL DEPENDENCIES
- #=================================================
- ynh_print_info "Reinstalling dependencies..."
- # Define and install dependencies
- ynh_install_app_dependencies "$pkg_dependencies"
- #=================================================
- # RESTORE SYSTEMD
- #=================================================
- ynh_print_info "Restoring the systemd configuration..."
- ynh_restore_file "/etc/systemd/system/$service_name.service"
- ynh_restore_file "/etc/systemd/system/$service_checker_name.service"
- ynh_restore_file "/etc/systemd/system/$service_checker_name.timer"
- ynh_restore_file "/etc/systemd/system/openvpn@.service"
- systemctl daemon-reload
- systemctl enable "$service_name.service" --quiet
- systemctl enable "$service_checker_name.service" --quiet
- systemctl enable "openvpn@.service" --quiet
- #=================================================
- # ADVERTISE SERVICE IN ADMIN PANEL
- #=================================================
- yunohost service add $service_name --description "Tunnels the internet traffic through a VPN" --need_lock --test_status="systemctl is-active openvpn@client.service" --log "/var/log/ynh-vpnclient.log"
- #=================================================
- # GENERIC FINALIZATION
- #=================================================
- #=================================================
- # END OF SCRIPT
- #=================================================
- ynh_print_info "Restoration completed for $app"
|