diff --git a/scripts/restore b/scripts/restore index d79981e..9f7ca3f 100755 --- a/scripts/restore +++ b/scripts/restore @@ -6,22 +6,17 @@ # 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 - cp ../settings/scripts/psql.sh ./psql.sh - chmod a+rx _common.sh psql.sh -fi - -source _common.sh +source ../settings/scripts/_common.sh source /usr/share/yunohost/helpers -source psql.sh - #================================================= # 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 @@ -31,9 +26,9 @@ ynh_abort_if_errors app=$YNH_APP_INSTANCE_NAME -domain=$(ynh_app_setting_get "$app" domain) +domain=$(ynh_app_setting_get $app domain) path_url="/" -final_path=$(ynh_app_setting_get "$app" final_path) +final_path=$(ynh_app_setting_get $app final_path) port=$(ynh_app_setting_get "$app" port) db_name=$(ynh_app_setting_get "$app" psql_db) db_pwd=$(ynh_app_setting_get "$app" psqlpwd) @@ -44,9 +39,9 @@ cache=$(ynh_app_setting_get "$app" cache) # CHECK IF THE APP CAN BE RESTORED #================================================= -ynh_webpath_available "$domain" "$path_url" \ +ynh_webpath_available $domain $path_url \ || ynh_die "Path not available: ${domain}${path_url}" -test ! -d "$final_path" \ +test ! -d $final_path \ || ynh_die "There is already a directory: $final_path " #================================================= @@ -67,8 +62,19 @@ fi ynh_restore_file "$final_path" -# Open this port -yunohost firewall allow Both "$port" 2>&1 +#================================================= +# RESTORE THE POSTGRESQL DATABASE +#================================================= + +ynh_psql_test_if_first_run +ynh_psql_create_user "$app" "$db_pwd" +ynh_psql_execute_as_root \ +"CREATE DATABASE $db_name ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0 OWNER $app;" +ynh_psql_execute_as_root "\connect $db_name +CREATE EXTENSION IF NOT EXISTS unaccent;CREATE EXTENSION IF NOT EXISTS pg_trgm;" +ynh_psql_execute_as_root "\connect $db_name +CREATE EXTENSION IF NOT EXISTS unaccent;CREATE EXTENSION IF NOT EXISTS citext;" +ynh_psql_execute_file_as_root ./db.sql "$db_name" #================================================= # RECREATE THE DEDICATED USER @@ -77,6 +83,19 @@ yunohost firewall allow Both "$port" 2>&1 # Create the dedicated user (if not existing) ynh_system_user_create "$app" "$final_path" +#================================================= +# RESTORE USER RIGHTS +#================================================= + +# Restore permissions on app files +chown -R "$app":"$app" "$final_path" + +#================================================= +# RESTORE THE PHP-FPM CONFIGURATION +#================================================= + +#ynh_restore_file "/etc/php5/fpm/pool.d/$app.conf" + #================================================= # SPECIFIC RESTORATION #================================================= @@ -100,40 +119,38 @@ sudo rm erlang_solutions.asc ynh_install_app_dependencies git build-essential postgresql postgresql-contrib openssl g++ apt-transport-https erlang-inets elixir erlang-dev erlang-parsetools erlang-xmerl erlang-tools #================================================= -# RESTORE THE PostgreSQL DATABASE +# ADVERTISE SERVICE IN ADMIN PANEL #================================================= -ynh_psql_test_if_first_run -ynh_psql_create_user "$app" "$db_pwd" -ynh_psql_execute_as_root \ -"CREATE DATABASE $db_name ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0 OWNER $app;" -ynh_psql_execute_as_root "\connect $db_name -CREATE EXTENSION IF NOT EXISTS unaccent;CREATE EXTENSION IF NOT EXISTS pg_trgm;" -ynh_psql_execute_as_root "\connect $db_name -CREATE EXTENSION IF NOT EXISTS unaccent;CREATE EXTENSION IF NOT EXISTS citext;" -ynh_psql_execute_file_as_root ./db.sql "$db_name" +yunohost service add $app --log "/var/log/$app/APP.log" #================================================= # RESTORE SYSTEMD #================================================= ynh_restore_file "/etc/systemd/system/$app.service" -systemctl enable "$app.service" +systemctl enable $app.service + +#================================================= +# RESTORE THE CRON FILE +#================================================= + +ynh_restore_file "/etc/cron.d/$app" #================================================= # RESTORE THE LOGROTATE CONFIGURATION #================================================= -# Set right permissions -chown -R "$app":"$app" "$final_path" +ynh_restore_file "/etc/logrotate.d/$app" #================================================= # GENERIC FINALIZATION #================================================= -# RELOAD NGINX AND START PLEROMA +# RELOAD NGINX AND PHP-FPM #================================================= systemctl reload nginx + systemctl enable "$app" systemctl start "$app" # App needs time to start