#!/bin/sh
# postinst script for debathena-reactivate
#
# see: dh_installdeb(1)

set -e

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <postinst> `abort-remove'
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package


package=debathena-reactivate
ours=.debathena
theirs=.debathena-orig

undivert_unlink_symlink()
{
    file="$1"
    ourfile="$2"
    theirfile="$3"
    if [ ! -L "$file" ] || \
	[ "$(readlink "$file")" != "$(basename "$ourfile")" -a \
	  "$(readlink "$file")" != "$(basename "$theirfile")" ]; then
	echo "*** OMINOUS WARNING ***: $file is not linked to either $(basename "$ourfile") or $(basename "$theirfile")" >&2
    else
	rm -f "$file"
    fi
}

undivert_unlink_divert()
{
    file="$1"
    if [ ! -L "$file" ] && [ ! -e "$file" ]; then
	dpkg-divert --remove --rename --package "$package" "$file"
    else
	echo "Not removing diversion of $file by $package" >&2
    fi
}

undivert_unlink()
{
    prefix=$1
    suffix=$2

    file=$prefix$suffix
    ourfile=$prefix$ours$suffix
    theirfile=$prefix$theirs$suffix

    undivert_unlink_symlink "$file" "$ourfile" "$theirfile"
    undivert_unlink_divert "$file" "$package"
}

cleanup_old_diversion() {
    file="$1"
    if dpkg-divert --list "${file}" | grep -Fxq "diversion of ${file} to ${file}${theirs} by ${package}"; then
	undivert_unlink "$file"
    fi
}

. /usr/lib/debathena-cupsys-config/restart-cups.sh

if dpkg-maintscript-helper supports rm_conffile 2> /dev/null; then
    dpkg-maintscript-helper rm_conffile /etc/athena/sudo-error 2.0.39 -- "$@"
    dpkg-maintscript-helper rm_conffile /etc/athena/su-error 2.0.39 -- "$@"
else
    # From http://wiki.debian.org/DpkgConffileHandling
    rm_conffile() {
        local PKGNAME="$1" # Unused
        local CONFFILE="$2"
        if [ -f "$CONFFILE".dpkg-del ]; then
            rm -f "$CONFFILE".dpkg-del
        fi
    }
    case "$1" in
        configure)
	    if dpkg --compare-versions "$2" le-nl 2.0.39; then
		rm_conffile debathena-reactivate "/etc/athena/sudo-error"
		rm_conffile debathena-reactivate "/etc/athena/su-error"
	    fi
    esac
fi

case "$1" in
    configure)
        # Users logging in will be added to several different
        # groups. Make sure they all exist.
        for group in $(sed -ne 's/^addgroups="\(.*\)"/\1/p' /etc/gdm/Xsession.debathena); do
            getent group "$group" >/dev/null || addgroup --system "$group"
        done
	# Files in sudoers.d need to be chmod 0440
	chmod 0440 /etc/sudoers.d/debathena-reactivate-sudoers

	if dpkg --compare-versions "$2" lt 1.25.5~ && \
	    dpkg --compare-versions "$2" ge 1.25.2; then
	    ln -nsf su.debathena /etc/pam.d/su
	fi

	cleanup_old_diversion /etc/gdm/PreSession/Default
	cleanup_old_diversion /etc/gdm/PostSession/Default

	if dpkg --compare-versions "$2" lt 2.0.26~ && \
	    [ -x /usr/share/update-notifier/notify-reboot-required ]; then
	    /usr/share/update-notifier/notify-reboot-required
	fi

	# Make printing suck less
	restart_cups
    ;;

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

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

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

#DEBHELPER#

exit 0


