#!/bin/bash #================================================= # GENERIC START #================================================= # IMPORT GENERIC HELPERS #================================================= source ../settings/scripts/_common.sh source /usr/share/yunohost/helpers #================================================= # MANAGE SCRIPT FAILURE #================================================= 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) db_pwd=$(ynh_app_setting_get "$app" psqlpwd) #================================================= # CHECK IF THE APP CAN BE RESTORED #================================================= ynh_script_progression --message="Validating restoration parameters..." --time --weight=1 # Check web path availability ynh_webpath_available "$domain" "$path_url" || ynh_die "Path not available: ${domain}${path_url}" test ! -e "$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_script_progression --message="Restoring the app main directory..." --time --weight=1 ynh_restore_file "$final_path" #================================================= # RECREATE THE DEDICATED USER #================================================= ynh_script_progression --message="Recreating the dedicated system user..." --time --weight=1 # Create the dedicated user (if not existing) ynh_system_user_create "$app" "/home/$app" # Allow bash for our user, so he can use hub chsh --shell /bin/bash "$app" #================================================= # RESTORE USER RIGHTS #================================================= # Restore permissions on app files chown -R "$app": "$final_path" #================================================= # SPECIFIC RESTORATION #================================================= # REINSTALL DEPENDENCIES #================================================= ynh_script_progression --message="Reinstalling dependencies..." --time --weight=1 ynh_install_app_dependencies "$pkg_dependencies" #================================================= # RESTORE THE PostgreSQL DATABASE #================================================= ynh_script_progression --message="Restoring the PostgreSQL database..." --time --weight=1 ynh_psql_test_if_first_run ynh_psql_setup_db "$db_name" "$db_name" "$db_pwd" ynh_psql_execute_file_as_root ./db.sql "$db_name" #================================================= # RESTORE Weblate service #================================================= ynh_script_progression --message="Restoring systemd configurations..." --time --weight=1 usermod --append --groups www-data "$app" ynh_restore_file "/etc/uwsgi/apps-available/$app.ini" ynh_restore_file "/etc/systemd/system/$app.service" systemctl enable "$app" ynh_restore_file "/etc/systemd/system/$app-celery.service" systemctl enable "$app-celery" #================================================= # ADVERTISE SERVICE IN ADMIN PANEL #================================================= # Add as a service yunohost service add "$app" --log "/var/log/$app/weblate.log" yunohost service add "$app-celery" --log "/var/log/$app/weblate-celery-w1.log" #================================================= # RESTORE THE CRON FILE #================================================= ynh_restore_file "/etc/cron.d/$app" #================================================= # RESTORE THE HUB BINARY FILE #================================================= ynh_script_progression --message="Restore hub's binary file..." --time --weight=1 ynh_restore_file "/usr/bin/hub" #================================================= # RESTORE THE LOGROTATE CONFIGURATION #================================================= ynh_restore_file --origin_path="/etc/logrotate.d/$app" mkdir -p "/var/log/$app" #================================================= # GENERIC FINALIZATION #================================================= # Start weblate #================================================= ynh_script_progression --message="Starting a systemd service..." --time --weight=1 ynh_systemd_action --service_name="$app" --action="start" ynh_systemd_action --service_name="$app-celery" --action="start" #================================================= # RELOAD NGINX #================================================= ynh_script_progression --message="Reloading nginx web server and php-fpm..." --time --weight=1 ynh_systemd_action --service_name="nginx" --action="reload" #================================================= # END OF SCRIPT #================================================= ynh_script_progression --message="Restoration completed for $app" --time --last