mirror of
https://github.com/YunoHost-Apps/noalyss_ynh.git
synced 2024-09-03 19:46:20 +02:00
109 lines
3.8 KiB
Bash
Executable file
109 lines
3.8 KiB
Bash
Executable file
#!/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"
|