#!/bin/sh
#----------------------------------------------------------------------------
# /var/install/deinstall/eisfax - deinstall script
#
# Creation:     2005-04-14 jv
# Last Update:  $Id$
#
# Copyright (c) 2005-@@YEAR@@ Holger Bruenjes, holgerbruenjes(at)gmx(dot)net
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#----------------------------------------------------------------------------

. /var/lib/eisfax/eisfax.info

# set package-name
package_name=eisfax

# check for update is given
case "${1}" in
    --update|update)
        update=true
    ;;
esac

# ---------------------------------------------------------------------------
# stop deamon
# ---------------------------------------------------------------------------
if ! /usr/sbin/service is-enabled eisfax-hfaxd.service
then
    quiet='--quiet'
fi
    # stop eisfax-devices systemd unit files
    /var/install/config.d/${package_name}.sh --quiet devices_stop

    /usr/sbin/service ${quiet} stop eisfax-hfaxd.service \
                                    eisfax-faxq.service
    /usr/sbin/service disable eisfax-hfaxd.service \
                              eisfax-faxq.service

# ---------------------------------------------------------------------------
# remove config and check file
# ---------------------------------------------------------------------------
rm -f /etc/default.d/${package_name}
rm -f /etc/check.d/${package_name}
rm -f /etc/check.d/${package_name}.*

# ---------------------------------------------------------------------------
# remove program files
# ---------------------------------------------------------------------------

if [ -f /usr/bin/${PRINTFAX_DEL_FILE} ]
then
    while read line
    do
        rm -f /usr/bin/$line
    done </usr/bin/${PRINTFAX_DEL_FILE}
fi

# check for eisfax-coverpege file
if [  -f /var/lib/eisfax/eisfax-coverpage ]
then
    rm -f /var/lib/eisfax/eisfax-coverpage
fi

rm -f ${PRINT_MODEM}
rm -f ${PRINT_MODEM_ISDN}
rm -f ${PRINT_MODEM_FRITZBOX}

# remove old obsolete links
rm -f /usr/lib/libfaxserver.so
rm -f /usr/lib/libfaxutil.so

# ---------------------------------------------------------------------------
# stop remove for update only
# ---------------------------------------------------------------------------
if "${update:-false}"
then
    exit 0
fi

# remove eisfax-devices systemd unit files
/var/install/config.d/${package_name}.sh uninstall

. /etc/config.d/${package_name}

# do that only if apache installed
if [ -f '/etc/config.d/apache2' ]
then
    . /etc/config.d/apache2

    vhost_alias_path='/etc/apache2/vhost'
    vhost_include_path='/etc/apache2/mods-include'
    vhost_enabled_path='/etc/apache2/mods-enabled'

    project_name="$(echo ${package_name} | tr [[:lower:]-] [[:upper:]_])_WEB"

    eval _project_n='${'${project_name}'_N}'

    idx=1
    while [ ${idx} -le ${_project_n:-0} ]
    do
        eval        web_name='${'${project_name}'_'${idx}'_NAME}'
        eval inst_servername='${'${project_name}'_'${idx}'_HOST_NAME}'
        eval      inst_alias='${'${project_name}'_'${idx}'_HOST_ALIAS}'

        rm -f ${vhost_alias_path}/host-${inst_servername}-${inst_alias}
        rm -f ${vhost_alias_path}/vhost-${inst_servername}-${inst_alias}

         # remove cert link
        if [ -L /var/certs/ssl/certs/${package_name}-${web_name}.pem ]
        then
            rm -f /var/certs/ssl/certs/${package_name}-${web_name}.pem
        fi

        idx=$((${idx} + 1))
    done

    rm -f ${vhost_include_path}/${package_name}-*.conf
    rm -f ${vhost_enabled_path}/virtualhost-${package_name}-*.conf

    # write new apache config
    /var/install/config.d/apache2.sh --quiet

    # reload apache2 configuration if apache is running
    if [ -f /run/httpd.pid ] ||
       [ -f /run/apache2.pid ]
    then
        /usr/sbin/servcice stop apache2
        sleep 3
        /usr/sbin/servcice start apache2
    fi
fi
# ---------------------------------------------------------------------------
# remove package from menu system / remove all menu and config files
# ---------------------------------------------------------------------------

/var/install/bin/del-menu      \
        setup.services.menu    \
        setup.services.${package_name}.menu

rm -f /var/install/menu/setup.services.${package_name}.edit.web-auth.menu

# ---------------------------------------------------------------------------
# remove config file
# ---------------------------------------------------------------------------

configfiles="/etc/config.d/${package_name}
             /etc/config.d/hylafax
             /etc/backup.d/${package_name}.*
             /etc/backup.d/hylafax.*
             /public/${package_name}
             ${FAXCRON_TIMER_DIR}/${FAXCRON_TIMER_CONF}
             ${FAXQCLEAN_TIMER_DIR}/${FAXQCLEAN_TIMER_CONF}"

for cfile in ${configfiles}
do
    rm -f ${cfile}
done

# ---------------------------------------------------------------------------
# remove program files
# ---------------------------------------------------------------------------

if [ "${EISFAX_RESPOND_SPECIAL_FOLDER}" = "no" ]
then
    rm -rf ${RESPOND_DEFAULT_PATH}
else
    rm -rf ${EISFAX_RESPOND_SPECIAL_FOLDER}
fi
rm -rf /var/spool/hylafax
rm -rf /tmp/.fax*
rm -rf /var/lib/eisfax
rm -rf /etc/iaxmodem
rm -rf /var/log/iaxmodem

logfiles="/tmp/smb-spoolfile
          /tmp/fax*
          /var/log/log.fax-*
          /etc/config.faxCAPI
          /etc/logrotate.d/eisfax
          /usr/etc/logrotate.d/eisfax
          /etc/capi.d/eisfax
          /etc/capi.d/${PACKAGE_NAME}-c2faxrecv.service
          /etc/aliases.eisfax"

for lfile in ${logfiles}
do
    rm -f ${lfile}
done




get_smtp_alias()
{
    local mail_a="${1}"

    case "${mail_a}" in
    msmtp)
        /var/install/config.d/mstmp.sh --alias
        ;;
    ssmtp)
        /var/install/config.d/smtp.sh alias
        ;;
    exim)
        /var/install/config.d/mail.sh alias
        ;;
    sendmail)
        /var/install/config.d/vmail.sh alias
        ;;
    *)
        alias_ret=1
    esac
}

if [ -f /usr/lib/sendmail ]
then
    smtp_installed=$(basename $(readlink /usr/lib/sendmail))

    get_smtp_alias "${smtp_installed}"
fi

# ---------------------------------------------------------------------------
# remove cron jobs
# ---------------------------------------------------------------------------

rm -f /var/cron/etc/root/faxqclean
rm -f /var/cron/etc/root/faxcron

/var/install/config.d/cron --quiet

# ---------------------------------------------------------------------------
# remove user and group
# ---------------------------------------------------------------------------
#/var/install/bin/remove-user-from-additional-group --user fax --group dialout

# remove folder
rm -rf /srv/www/${package_name}
rm -f  /etc/logrotate.d/${package_name}-*

rmdir --ignore-fail-on-non-empty ${FAXQCLEAN_TIMER_DIR} 2>/dev/null
rmdir --ignore-fail-on-non-empty ${FAXCRON_TIMER_DIR} 2>/dev/null

/usr/bin/systemctl --no-reload disable --now eisfax-faxq.service \
                                             eisfax-hfaxd.service \
                                             eisfax.target \
                                             eisfax-faxcron.timer \
                                             eisfax-faxqclean.timer 
/usr/bin/systemctl clean --what=state eisfax-faxcron.timer \
                                      eisfax-faxqclean.timer

exit 0
# ---------------------------------------------------------------------------
# end
# ---------------------------------------------------------------------------