#!/bin/bash

# Wifi Hotspot app for YunoHost
# Copyright (C) 2015 Julien Vaubourg <julien@vaubourg.com>
# Contribute at https://github.com/labriqueinternet/hotspot_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
#=================================================

app=$YNH_APP_INSTANCE_NAME

domain=$(ynh_app_setting_get $app domain)
firmware_nonfree=$(ynh_app_setting_get $app firmware_nonfree)

# The End
systemctl stop ynh-hotspot
systemctl disable ynh-hotspot
yunohost service remove ynh-hotspot
ynh_secure_remove /etc/systemd/system/ynh-hotspot.service
ynh_secure_remove /usr/local/bin/ynh-hotspot
for FILE in $(ls /tmp/.ynh-hotspot-* 2>/dev/null)
do
    ynh_secure_remove "$FILE"
done

# Update firewall for DHCP
yunohost firewall disallow --ipv6 UDP 547
yunohost firewall disallow UDP 67

# Remove confs
ynh_secure_remove /etc/dnsmasq.dhcpd
ynh_secure_remove /etc/nginx/conf.d/${domain}.d/wifiadmin.conf
ynh_secure_remove /etc/php5/fpm/pool.d/wifiadmin.conf
for FILE in $(ls /etc/hostapd/hostapd.conf{.tpl?,} 2>/dev/null)
do
    ynh_secure_remove "$FILE"
done
ynh_secure_remove /etc/sudoers.d/hotspot_ynh

# Remove packages
if [[ $firmware_nonfree == yes ]]; then
  packages=$nonfree_packages
else
  packages=$free_packages

  # Remove free firmwares
  if ! dpkg -l firmware-atheros &> /dev/null; then
    ynh_secure_remove /lib/firmware/htc_7010.fw
    ynh_secure_remove /lib/firmware/htc_9271.fw
  fi
fi
apt-get --assume-yes --force-yes remove ${packages}

# Restart services
systemctl restart php5-fpm
systemctl reload nginx

# Remove sources
ynh_secure_remove /var/www/wifiadmin

# Remove user
ynh_system_user_delete ${app}