#!/bin/bash #================================================= # GENERIC START #================================================= # IMPORT GENERIC HELPERS #================================================= source _common.sh source /usr/share/yunohost/helpers #================================================= # LOAD SETTINGS #================================================= ynh_script_progression --message="Loading installation settings..." app=$YNH_APP_INSTANCE_NAME domain=$(ynh_app_setting_get --app=$app --key=domain) db_name=$(ynh_app_setting_get --app=$app --key=db_name) db_user=$db_name final_path=$(ynh_app_setting_get --app=$app --key=final_path) #================================================= # REMOVE THE POSTGRESQL DATABASE(S) & ROLE #================================================= ynh_script_progression --message="Removing all associated PostgreSQL database(s) and role" # Remove all existing databases associated with the app's dedicated user a database if it exists sql="COPY (SELECT datname FROM pg_database JOIN pg_authid ON pg_database.datdba = pg_authid.oid WHERE rolname = '${db_user}') TO STDOUT" dbs_to_drop=ynh_psql_execute_as_root --sql="$sql" #Fetch database(s) associated to role $db_user if [[ -n "$dbs_to_drop" ]]; then # Check that the list of database(s) is not empty for $db_name in $dbs_to_drop # Iterate through the list of database(s) to remove do if ynh_psql_database_exists --database=$db_name; then # Check if the database exists ynh_psql_drop_db $db_name # Remove the database ynh_print_info --message="Removed database $db_name associated to role $db_user" else ynh_print_warn --message="Database $db_name not found" fi done else ynh_print_warn --message="No associated database to role $db_user was found" fi # Remove dedicated PostgreSQL role if ynh_psql_user_exists --user=$db_user; then ynh_psql_drop_user $db_user ynh_print_info --message="Removed PostgreSQL role $db_user" else ynh_print_warn --message="User $db_user not found" fi #================================================= # REMOVE APP MAIN DIR #================================================= ynh_script_progression --message="Removing app main directory" # Remove the app directory securely ynh_secure_remove --file="$final_path" #================================================= # REMOVE NGINX CONFIGURATION #================================================= ynh_script_progression --message="Removing NGINX web server configuration" # Remove the dedicated NGINX config ynh_remove_nginx_config #================================================= # REMOVE PHP-FPM CONFIGURATION #================================================= ynh_script_progression --message="Removing PHP-FPM configuration" # Remove the dedicated PHP-FPM config ynh_remove_fpm_config #================================================= # REMOVE DEPENDENCIES #================================================= ynh_script_progression --message="Removing dependencies" # Remove metapackage and its dependencies ynh_remove_app_dependencies #================================================= # REMOVE LOGROTATE CONFIGURATION #================================================= ynh_script_progression --message="Removing logrotate configuration" # Remove the app-specific logrotate config ynh_remove_logrotate ##================================================= ## GENERIC FINALIZATION #================================================= # REMOVE DEDICATED USER #================================================= ynh_script_progression --message="Removing the dedicated system user" # Delete a system user ynh_system_user_delete --username=$app #================================================= # END OF SCRIPT #================================================= ynh_script_progression --message="Removal of $app completed"