#!/bin/sh
set -e

case "$1" in
    remove|deconfigure)
        # Stop offering the tunnels, but leave strongSwan itself enabled: it is
        # a shared service and may be in use by something other than this
        # package. The connection files are removed on purge.
        # The site-to-site connections are the names of site_to_site in vpn-router.json.
        if [ -d /run/systemd/system ]; then
            connections="$(python3 -c 'import json, sys; print(" ".join(json.load(open(sys.argv[1])).get("site_to_site", {})))' \
                /etc/vpn-router/vpn-router.json 2>/dev/null || true)"
            for connection in $connections; do
                swanctl --terminate --ike "$connection" >/dev/null 2>&1 || true
            done
            swanctl --terminate --ike road-warrior >/dev/null 2>&1 || true
        fi

        # vpn-router-setup enabled wg-quick@wg0, openvpn-server@vpn-router,
        # caddy, vpn-router-metrics, the backup timer and the PKI timer, so the
        # package takes them down again. Use the debhelper wrappers rather than
        # systemctl, so the script behaves on a machine without systemd.
        for unit in wg-quick@wg0.service openvpn-server@vpn-router.service caddy.service vpn-router-metrics.service \
                vpn-router-backup.timer vpn-router-pki.timer; do
            if command -v deb-systemd-invoke >/dev/null 2>&1; then
                deb-systemd-invoke stop "$unit" >/dev/null 2>&1 || true
            fi
            if command -v deb-systemd-helper >/dev/null 2>&1; then
                deb-systemd-helper disable "$unit" >/dev/null 2>&1 || true
            fi
        done
        ;;
esac

#DEBHELPER#
