diff --git a/scripts/restore b/scripts/restore index efeb03e..4475e14 100644 --- a/scripts/restore +++ b/scripts/restore @@ -3,52 +3,29 @@ #================================================= # GENERIC START #================================================= -# IMPORT GENERIC HELPERS -#================================================= -# Keep this path for calling _common.sh inside the execution's context of backup and restore scripts -source ../settings/scripts/_common.sh +# IMPORT GENERIC HELPERS 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_script_progression --message="Loading installation settings..." --weight=1 +# Load common variables and helpers +source ../settings/scripts/_common.sh # Retrieve old app settings -domain=$(ynh_app_setting_get --app=$app --key=domain) -path_url=$(ynh_app_setting_get --app=$app --key=path) -admin=$(ynh_app_setting_get --app=$app --key=adminusername) - -#================================================= -# CHECK IF THE APP CAN BE RESTORED -#================================================= -ynh_script_progression --message="Validating restoration parameters..." --weight=1 +domain=$(ynh_app_setting_get "$app" domain) +path_url=$(ynh_app_setting_get "$app" path) +dbpass=$(ynh_app_setting_get "$app" mysqlpwd) +admin=$(ynh_app_setting_get "$app" adminusername) # Check user parameter -ynh_user_exists "$admin" || ynh_die "The chosen admin user does not exist." +ynh_user_exists "$admin" \ + || ynh_die "The chosen admin user does not exist." # Check Final Path availability test ! -e "$final_path" || ynh_die "This path already contains a folder" -#================================================= -# RESTORE THE NGINX CONFIGURATION -#================================================= -ynh_script_progression --message="Restoring the NGINX configuration..." --weight=1 - -ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" - #================================================= # STANDARD RESTORATION STEPS #================================================= @@ -59,81 +36,30 @@ test getent passwd "$app" &>/dev/null || \ useradd -d "$DATADIR" --system --user-group "$app" --shell /bin/bash || \ ynh_die "Unable to create $app system account" -#================================================= -# RESTORE THE APP MAIN DIR -#================================================= -ynh_script_progression --message="Restoring the app main directory..." --weight=1 +# Restore all files +ynh_restore -ynh_restore_file --origin_path="$final_path" +# Create and restore the database +ynh_mysql_create_db "$dbname" "$dbuser" "$dbpass" +ynh_mysql_connect_as "$dbuser" "$dbpass" "$dbname" < ./db.sql -#================================================= -# RESTORE THE DATA DIRECTORY -#================================================= -ynh_script_progression --message="Restoring the data directory..." --weight=1 - -ynh_restore_file --origin_path="$DATADIR" --not_mandatory - -mkdir -p $DATADIR - -#================================================= -# RESTORE THE MYSQL DATABASE -#================================================= -ynh_script_progression --message="Restoring the MySQL database..." --weight=1 - -dbpass=$(ynh_app_setting_get --app=$app --key=mysqlpwd) -ynh_mysql_setup_db --db_user=$dbuser --db_name=$dbname --db_pwd=$dbpass -ynh_mysql_connect_as --user=$dbuser --password=$dbpass --database=$dbname < ./db.sql +# Restore systemd files +systemctl daemon-reload +systemctl enable "$app".service #================================================= # GENERIC FINALIZATION #================================================= # Set permissions -chown -R $app:$app "$final_path" -chown -R $app:$app "/home/$app" -#chown -R $app:$app "/var/log/$app" -chmod u=rwX,g=rX,o= "$final_path" -chmod u=rwX,g=rX,o= "/home/$app" -#chmod u=rwX,g=rX,o= "/var/log/$app" +set_permission -#================================================= -# RESTORE SYSTEMD -#================================================= -ynh_script_progression --message="Restoring the systemd configuration..." --weight=1 - -ynh_restore_file --origin_path="/etc/systemd/system/$app.service" -systemctl enable $app.service --quiet - -#================================================= -# RESTORE THE LOGROTATE CONFIGURATION -#================================================= -ynh_script_progression --message="Restoring the logrotate configuration..." --weight=1 - -ynh_restore_file --origin_path="/etc/logrotate.d/$app" - -#================================================= -# INTEGRATE SERVICE IN YUNOHOST -#================================================= -ynh_script_progression --message="Integrating service in YunoHost..." --weight=1 - -yunohost service add $app --description="Lightweight Git forge" --log="/var/log/$app/$app.log" - -#================================================= -# START SYSTEMD SERVICE -#================================================= -ynh_script_progression --message="Starting a systemd service..." --weight=1 +# Configure logrotate +ynh_use_logrotate "/var/log/$app" +# Add Gogs to YunoHost's monitored services +yunohost service add "$app" --log /var/log/"$app"/"$app".log ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" -#================================================= -# RELOAD NGINX AND PHP-FPM -#================================================= -ynh_script_progression --message="Reloading NGINX web server..." --weight=1 - -ynh_systemd_action --service_name=nginx --action=reload - -#================================================= -# END OF SCRIPT -#================================================= - -ynh_script_progression --message="Restoration completed for $app" --last +# Reload services +systemctl reload nginx.service