diff --git a/scripts/remove b/scripts/remove index e60ed37..0c39054 100644 --- a/scripts/remove +++ b/scripts/remove @@ -1,104 +1,114 @@ #!/bin/bash -# Exit on command errors and treat unset variables as an error -set -u - -if [ ! -e _common.sh ]; then - # Get file fonction if not been to the current directory - sudo cp ../settings/scripts/_common.sh ./_common.sh - sudo chmod a+rx _common.sh -fi +#================================================= +# GENERIC START +#================================================= +# IMPORT GENERIC HELPERS +#================================================= source _common.sh # Loads the generic functions usually used in the script # Source app helpers source /usr/share/yunohost/helpers +source _future.sh + + + +#================================================= +# LOAD SETTINGS +#================================================= -# Get multi-instances specific variables app=$YNH_APP_INSTANCE_NAME # Retrieve app settings domain=$(ynh_app_setting_get "$app" domain) - -# Stop mastodon-web -if [ -e "/etc/systemd/system/mastodon-web.service" ]; then - echo "Delete systemd script" - sudo systemctl stop mastodon-web.service - ynh_secure_remove "/etc/systemd/system/mastodon-web.service" - sudo systemctl disable mastodon-web.service -fi - -# Stop mastodon-sidekiq -if [ -e "/etc/systemd/system/mastodon-sidekiq.service" ]; then - echo "Delete systemd script" - sudo systemctl stop mastodon-sidekiq.service - ynh_secure_remove "/etc/systemd/system/mastodon-sidekiq.service" - sudo systemctl disable mastodon-sidekiq.service -fi - -# Stop mastodon-sidekiq -if [ -e "/etc/systemd/system/mastodon-streaming.service" ]; then - echo "Delete systemd script" - sudo systemctl stop mastodon-streaming.service - ynh_secure_remove "/etc/systemd/system/mastodon-streaming.service" - sudo systemctl disable mastodon-streaming.service -fi - -# Delete service on Yunohost monitoring -if sudo yunohost service status | grep -q mastodon-web -then - echo "Remove mastodon-web service" - sudo yunohost service remove mastodon-web -fi - -# Delete service on Yunohost monitoring -if sudo yunohost service status | grep -q mastodon-sidekiq -then - echo "Remove mastodon-sidekiq service" - sudo yunohost service remove mastodon-sidekiq -fi - -# Delete service on Yunohost monitoring -if sudo yunohost service status | grep -q mastodon-streaming -then - echo "Remove mastodon-streaming service" - sudo yunohost service remove mastodon-streaming -fi - -# delete postgresql database & user +db_name=$(ynh_app_setting_get "$app" db_name) db_user=$(ynh_sanitize_dbid "$app") db_name=$(ynh_sanitize_dbid "$app") +final_path=$(ynh_app_setting_get "$app" final_path) + +#================================================= +# STANDARD REMOVE +#================================================= +# STOP AND REMOVE SERVICE +#================================================= + +ynh_remove_systemd_config "$app-web" +ynh_remove_systemd_config "$app-sidekiq" +ynh_remove_systemd_config "$app-streaming" + +#================================================= +# REMOVE SERVICE FROM ADMIN PANEL +#============================================== + +if yunohost service status | grep -q "$app-web" +then + echo "Remove $app-web service" + yunohost service remove "$app-web" +fi + +if yunohost service status | grep -q "$app-sidekiq" +then + echo "Remove $app-sidekiq service" + yunohost service remove "$app-sidekiq" +fi + +if yunohost service status | grep -q "$app-streaming" +then + echo "Remove $app-streaming service" + yunohost service remove "$app-streaming" +fi + +#================================================= +# REMOVE DEPENDENCIES +#================================================= + +# Remove metapackage and its dependencies +ynh_remove_app_dependencies + +#================================================= +# REMOVE THE PostgreSQL DATABASE +#================================================= + +# delete postgresql database & user ynh_psql_remove_db "$db_name" "$db_user" -# Remove Debian package -sudo apt-get remove --purge -y yarn -#sudo apt-get remove --purge -y imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file curl git -# Delete redis package -#sudo apt-get remove --purge -y redis-server redis-tools -# Delete postgresql package -#sudo apt-get remove --purge -y postgresql postgresql-contrib -# Delete Ruby package -#sudo apt-get remove --purge -y autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev +#================================================= +# REMOVE APP MAIN DIR +#================================================= -# Delete app directory and configurations -ynh_secure_remove /opt/$app -[[ -n $domain ]] && sudo rm -f "/etc/nginx/conf.d/${domain}.d/${app}.conf" +# Remove the app directory securely +ynh_secure_remove "$final_path" -# Delete nginx configuration -REMOVE_NGINX_CONF +#================================================= +# REMOVE NGINX CONFIGURATION +#================================================= + +ynh_secure_remove "/etc/nginx/conf.d/${domain}.d/${app}.conf" +systemctl reload nginx + +#================================================= +# SPECIFIC REMOVE +#================================================= +# REMOVE THE CRON FILE +#================================================= # Delete cronlog ynh_secure_remove /etc/cron.d/$app -# Delete source.list + +#================================================= +# REMOVE source.list +#================================================= + ynh_secure_remove /etc/apt/sources.list.d/backports.list ynh_secure_remove /etc/apt/sources.list.d/yarn.list # Delete ruby exec ynh_secure_remove /usr/bin/ruby -# Remove user -sudo userdel -f $app +#================================================= +# GENERIC FINALIZATION +#================================================= +# REMOVE DEDICATED USER +#================================================= -# Reload services -sudo systemctl reload nginx - -echo -e "\e[0m" # Restore normal color +userdel -f $app