1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/nomad_ynh.git synced 2024-09-03 19:55:53 +02:00
nomad_ynh/scripts/remove

151 lines
4.8 KiB
Bash
Executable file

#!/bin/bash
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
source _common.sh
source ynh_install_go
source /usr/share/yunohost/helpers
#=================================================
# LOAD SETTINGS
#=================================================
ynh_script_progression --message="Loading installation settings..." --weight=1
app=$YNH_APP_INSTANCE_NAME
domain=$(ynh_app_setting_get --app=$app --key=domain)
config_path=$(ynh_app_setting_get --app=$app --key=config_path)
datadir=$(ynh_app_setting_get --app=$app --key=datadir)
node_type=$(ynh_app_setting_get --app=$app --key=node_type)
driver_lxc=$(ynh_app_setting_get --app=$app --key=driver_lxc)
rpc_port=$(ynh_app_setting_get --app=$app --key=rpc_port)
serf_port=$(ynh_app_setting_get --app=$app --key=serf_port)
#=================================================
# STANDARD REMOVE
#=================================================
# REMOVE SERVICE INTEGRATION IN YUNOHOST
#=================================================
# Remove the service from the list of services known by YunoHost (added from `yunohost service add`)
if ynh_exec_warn_less yunohost service status $app >/dev/null
then
ynh_script_progression --message="Removing $app service integration..." --weight=1
yunohost service remove $app
fi
#=================================================
# STOP AND REMOVE SERVICE
#=================================================
ynh_script_progression --message="Stopping and removing the systemd service..." --weight=1
ynh_exec_warn_less timeout 25 nomad node drain -self -enable -yes -deadline 20s
# Remove the dedicated systemd config
ynh_remove_systemd_config
#=================================================
# REMOVE LOGROTATE CONFIGURATION
#=================================================
ynh_script_progression --message="Removing logrotate configuration..." --weight=1
# Remove the app-specific logrotate config
ynh_remove_logrotate
#=================================================
# REMOVE NGINX CONFIGURATION
#=================================================
ynh_script_progression --message="Removing NGINX web server configuration..." --weight=1
# Remove the dedicated NGINX config
ynh_remove_nginx_config
#=================================================
# CLOSE A PORT
#=================================================
if yunohost firewall list | grep -q "\- $rpc_port$"
then
ynh_script_progression --message="Closing port $rpc_port..." --weight=1
ynh_exec_warn_less yunohost firewall disallow TCP $rpc_port
fi
if yunohost firewall list | grep -q "\- $serf_port$"
then
ynh_script_progression --message="Closing port $serf_port..." --weight=1
ynh_exec_warn_less yunohost firewall disallow TCP $serf_port
fi
if [ "$node_type" == "client" ]
then
if [ $driver_lxc -eq 1 ]
then
client_lxc_bridge=$(ynh_app_setting_get --app=$app --key=client_lxc_bridge)
ynh_systemd_action --service_name=lxc-net --action="stop"
systemctl disable lxc-net --quiet
ynh_secure_remove --file="/etc/default/lxc-net"
ynh_secure_remove --file="/etc/lxc/default.conf"
ynh_secure_remove --file="/etc/dnsmasq.d/lxd"
systemctl restart dnsmasq
fi
fi
#=================================================
# REMOVE DEPENDENCIES
#=================================================
ynh_script_progression --message="Removing dependencies..." --weight=1
# Remove metapackage and its dependencies
ynh_remove_app_dependencies
if [ "$node_type" == "client" ]
then
if [ $driver_lxc -eq 1 ]
then
ynh_remove_go
fi
fi
#=================================================
# REMOVE DATA DIR
#=================================================
# Remove the data directory if --purge option is used
if [ "${YNH_APP_PURGE:-0}" -eq 1 ]
then
ynh_script_progression --message="Removing app data directory..." --weight=1
ynh_secure_remove --file="$datadir"
fi
#=================================================
# SPECIFIC REMOVE
#=================================================
# REMOVE VARIOUS FILES
#=================================================
ynh_script_progression --message="Removing various files..." --weight=1
# Remove a directory securely
ynh_secure_remove --file="$config_path"
# Remove the log files
ynh_secure_remove --file="/var/log/$app"
#=================================================
# GENERIC FINALIZATION
#=================================================
# REMOVE DEDICATED USER
#=================================================
ynh_script_progression --message="Removing the dedicated system user..." --weight=1
# Delete a system user
ynh_system_user_delete --username=$app
#=================================================
# END OF SCRIPT
#=================================================
ynh_script_progression --message="Removal of $app completed" --last