#!/bin/bash

# VPN Client app for YunoHost
# Copyright (C) 2015 Julien Vaubourg <julien@vaubourg.com>
# Contribute at https://github.com/labriqueinternet/vpnclient_ynh
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

#=================================================
# GENERIC STARTING
#=================================================
# IMPORT GENERIC HELPERS
#=================================================

source _common.sh
source /usr/share/yunohost/helpers

#=================================================
# LOAD SETTINGS
#=================================================
ynh_print_info "Loading installation settings..."

app=$YNH_APP_INSTANCE_NAME
domain=$(ynh_app_setting_get $app domain)

#=================================================
# STOP AND REMOVE SERVICES
#=================================================
ynh_print_info "Stopping and removing services"

systemctl stop $service_checker_name
systemctl disable $service_checker_name --quiet
systemctl stop $service_checker_name.timer && sleep 1
systemctl disable $service_checker_name.timer --quiet

if ynh_exec_warn_less yunohost service status $service_name >/dev/null
then
    yunohost service stop $service_name
    yunohost service disable $service_name --quiet
    yunohost service remove $service_name
fi

for FILE in $(ls /etc/systemd/system/$service_name* /usr/local/bin/ynh-vpnclient* /tmp/.ynh-vpnclient-*)
do
    ynh_secure_remove "$FILE"
done

#=================================================
# REMOVE NGINX CONFIGURATION
#=================================================
ynh_print_info "Removing NGINX web server configuration"

# Remove the dedicated NGINX config
ynh_remove_nginx_config

#=================================================
# REMOVE PHP-FPM CONFIGURATION
#=================================================
ynh_print_info "Removing PHP-FPM configuration"

# Remove the dedicated PHP-FPM config
ynh_remove_fpm_config

#=================================================
# SPECIFIC REMOVE
#================================================
ynh_print_info "Removing openvpn configuration"

# Remove openvpn configurations
ynh_secure_remove /etc/openvpn/client.conf
ynh_secure_remove /etc/openvpn/client.conf.tpl
ynh_secure_remove /etc/openvpn/client.conf.tpl.restore

# Remove YunoHost hook
ynh_secure_remove /etc/yunohost/hooks.d/90-vpnclient.tpl

# Remove openvpn service
ynh_secure_remove /etc/systemd/system/openvpn@.service

# Remove openvpn certificates
ynh_secure_remove /etc/openvpn/keys

# Reload systemd configuration
systemctl daemon-reload

#=================================================
# REMOVE DEPENDENCIES
#=================================================
ynh_print_info "Removing dependencies"
ynh_remove_app_dependencies

# Remove sources
ynh_secure_remove "/var/www/${app}"

#=================================================
# REMOVE DEDICATED USER
#=================================================

ynh_print_info "Removing the dedicated system user"

# Delete a system user
ynh_system_user_delete ${app}
ynh_secure_remove "/etc/sudoers.d/${app}_ynh"

#=================================================
# END OF SCRIPT
#=================================================

ynh_print_info "Removal of $app completed"