#!/bin/sh

set -e

# summary of how this script can be called:
#        * <postrm> `remove'
#        * <postrm> `purge'
#        * <old-postrm> `upgrade' <new-version>
#        * <new-postrm> `failed-upgrade' <old-version>
#        * <new-postrm> `abort-install'
#        * <new-postrm> `abort-install' <old-version>
#        * <new-postrm> `abort-upgrade' <old-version>
#        * <disappearer's-postrm> `disappear' <overwriter>
#          <overwriter-version>
# for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package

remove_config_from_template() {
    local config="$1"
    local template="$2"
    local lastver="$3"

    if [ "$4" != "--" ]; then
        echo "remove_config_from_template called with the wrong number of arguments" >&2
        return 1
    fi
    for _ in $(seq 1 4); do
        shift
    done

    if [ "$1" = "remove" ] && [ -e "$config" ]; then
        # When removing the package, move the configuration file to the side
        # so that the daemon no longer sees it, but we can still restore it
        # at a later time if the package is reinstalled
        mv -f "$config" "$config.dpkg-backup"
        return 0
    fi

    if [ "$1" = "purge" ]; then
        # When purging the package, remove all traces of the configuration
        rm -f "$config" "$config.dpkg-backup"
        return 0
    fi
}

case "$1" in
    remove|purge)
        remove_config_from_template \
            "/etc/libvirt/qemu/networks/default.xml" \
            "/usr/share/libvirt/networks/default.xml" \
            "6.9.0-2~" \
            -- \
            "$@"

        # Since we might have changed the on-disk configuration for some
        # services, restart them so that they can pick up the new settings
        if [ -d /run/systemd/system ]; then
            if systemctl is-active -q virtnetworkd; then
                systemctl restart virtnetworkd
            fi
            if systemctl is-active -q libvirtd; then
                systemctl restart libvirtd
            fi
        fi
    ;;

    upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
    ;;

    *)
        echo "postrm called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac



exit 0
