mirror of
https://github.com/YunoHost-Apps/nomad_ynh.git
synced 2024-09-03 19:55:53 +02:00
151 lines
4.8 KiB
Bash
Executable file
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
|