#!/bin/sh

set -e

# This script can be called in the following ways:
#
# After the package was installed:
#	<postinst> configure <old-version>
#
#
# If prerm fails during upgrade or fails on failed upgrade:
#	<old-postinst> abort-upgrade <new-version>
#
# If prerm fails during deconfiguration of a package:
#	<postinst> abort-deconfigure in-favour <new-package> <version>
#	           removing <old-package> <version>
#
# If prerm fails during replacement due to conflict:
#	<postinst> abort-remove in-favour <new-package> <version>

case "$1" in
    configure)
        # Create netdev group. Members of group netdev get access to the PolicyKit action
        # org.freedesktop.NetworkManager.settings.modify.system without prior authentication
        addgroup --quiet --system netdev

        # This directory can contain sensitive data and should not be world-readable
        chmod 0700 /var/lib/NetworkManager

        NIF=/etc/network/interfaces
        if [ -z "$2" ] && [ -f $NIF ]; then
            ifaces=`grep -v '^#' $NIF | awk '/iface/ {print $2}' | sort -u | sed -e 's/lo//' -e '/^$/d' -e 's/^/- /'`
            if [ -n "$ifaces" ]; then
                echo "" 1>&2
                echo "The following network interfaces were found in $NIF" 1>&2
                echo "which means they are currently configured by ifupdown:" 1>&2
                echo "$ifaces" 1>&2
                echo "If you want to manage those interfaces with NetworkManager instead" 1>&2
                echo "remove their configuration from $NIF." 1>&2
                echo "" 1>&2
            fi
        fi

        if dpkg --compare-versions "$2" lt-nl "1.20.4-2"; then
            if [ -f /var/lib/NetworkManager/secret_key ]; then
                chmod 0600 /var/lib/NetworkManager/secret_key
            fi
        fi
        if dpkg --compare-versions "$2" lt-nl "1.25.91-1"; then
            update-rc.d -f network-manager remove || true
        fi
        if dpkg --compare-versions "$2" lt-nl "1.35.91-1"; then
            deb-systemd-helper purge "nm-priv-helper.service" || true
        fi
        ;;

    abort-upgrade|abort-deconfigure|abort-remove)
        ;;

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

# Automatically added by dh_installdeb/13.11.4
dpkg-maintscript-helper rm_conffile /etc/init.d/network-manager 1.25.91-1\~ -- "$@"
# End automatically added section
# Automatically added by dh_installsystemd/13.11.4
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
	# The following line should be removed in trixie or trixie+1
	deb-systemd-helper unmask 'NetworkManager-dispatcher.service' >/dev/null || true

	# was-enabled defaults to true, so new installations run enable.
	if deb-systemd-helper --quiet was-enabled 'NetworkManager-dispatcher.service'; then
		# Enables the unit on first installation, creates new
		# symlinks on upgrades if the unit file has changed.
		deb-systemd-helper enable 'NetworkManager-dispatcher.service' >/dev/null || true
	else
		# Update the statefile to add new symlinks (if any), which need to be
		# cleaned up on purge. Also remove old symlinks.
		deb-systemd-helper update-state 'NetworkManager-dispatcher.service' >/dev/null || true
	fi
fi
# End automatically added section
# Automatically added by dh_installsystemd/13.11.4
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
	# The following line should be removed in trixie or trixie+1
	deb-systemd-helper unmask 'NetworkManager-wait-online.service' >/dev/null || true

	# was-enabled defaults to true, so new installations run enable.
	if deb-systemd-helper --quiet was-enabled 'NetworkManager-wait-online.service'; then
		# Enables the unit on first installation, creates new
		# symlinks on upgrades if the unit file has changed.
		deb-systemd-helper enable 'NetworkManager-wait-online.service' >/dev/null || true
	else
		# Update the statefile to add new symlinks (if any), which need to be
		# cleaned up on purge. Also remove old symlinks.
		deb-systemd-helper update-state 'NetworkManager-wait-online.service' >/dev/null || true
	fi
fi
# End automatically added section
# Automatically added by dh_installsystemd/13.11.4
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
	# The following line should be removed in trixie or trixie+1
	deb-systemd-helper unmask 'NetworkManager.service' >/dev/null || true

	# was-enabled defaults to true, so new installations run enable.
	if deb-systemd-helper --quiet was-enabled 'NetworkManager.service'; then
		# Enables the unit on first installation, creates new
		# symlinks on upgrades if the unit file has changed.
		deb-systemd-helper enable 'NetworkManager.service' >/dev/null || true
	else
		# Update the statefile to add new symlinks (if any), which need to be
		# cleaned up on purge. Also remove old symlinks.
		deb-systemd-helper update-state 'NetworkManager.service' >/dev/null || true
	fi
fi
# End automatically added section
# Automatically added by dh_installsystemd/13.11.4
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
	if [ -d /run/systemd/system ]; then
		systemctl --system daemon-reload >/dev/null || true
		if [ -n "$2" ]; then
			_dh_action=restart
		else
			_dh_action=start
		fi
		deb-systemd-invoke $_dh_action 'NetworkManager.service' >/dev/null || true
	fi
fi
# End automatically added section


