#! /bin/sh
# postinst script for kdm
#
# 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>
#        * <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
#

# source debconf library
. /usr/share/debconf/confmodule

THIS_PACKAGE=kdm

case "$1" in
    configure)

    ;;

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

    ;;

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

# debconf is not a registry, so we only fiddle with the default file if it
# does not exist
DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager
if [ ! -e "$DEFAULT_DISPLAY_MANAGER_FILE" ]; then
  DEFAULT_DISPLAY_MANAGER=
  if db_get shared/default-x-display-manager; then
    DEFAULT_DISPLAY_MANAGER="$RET"
  fi
  if [ -n "$DEFAULT_DISPLAY_MANAGER" ]; then
    DAEMON_NAME=
    if db_get "$DEFAULT_DISPLAY_MANAGER"/daemon_name; then
      DAEMON_NAME="$RET"
    fi
    if [ ! -n "$DAEMON_NAME" ]; then
      # if we were unable to determine the name of the selected daemon (for
      # instance, if the selected default display manager doesn't provide a
      # daemon_name question), guess
      DAEMON_NAME=$(which "$DEFAULT_DISPLAY_MANAGER" 2>/dev/null)
      if [ ! -n "$DAEMON_NAME" ]; then
        echo .
        # FIXME - redo this part uses shell-lib.sh from xfree86
        #warn "unable to determine path to default X display manager" \
        #     "$DEFAULT_DISPLAY_MANAGER; not updating" \
        #     "$DEFAULT_DISPLAY_MANAGER_FILE"
      fi
    fi
    if [ -n "$DAEMON_NAME" ]; then
      # FIXME - redo this part uses shell-lib.sh from xfree86
      #observe "committing change of default X display manager"
      echo "$DAEMON_NAME" > "$DEFAULT_DISPLAY_MANAGER_FILE"
    fi
  fi
fi

# remove the displaced old default display manager file if it exists
if [ -e "$DEFAULT_DISPLAY_MANAGER_FILE.dpkg-tmp" ]; then
  rm "$DEFAULT_DISPLAY_MANAGER_FILE.dpkg-tmp"
fi

# restarting the daemon may cause output to stdout
db_stop

# don't start kdm if we are upgrading without stopping it
NOSTART=
KDM_RUNNING=
if [ -e /var/run/kdm.upgrade ]; then
  NOSTART=yes
fi
# or if we're currently in X on the display it attempts to manage by default
for HOST in "" \
            "localhost" \
            "$(hostname 2> /dev/null)" \
            "$(hostname -f 2> /dev/null)"; do
  if echo "$DISPLAY" | grep -q "^$HOST:0.*"; then
    NOSTART=yes
    break
  fi
done
# or if it's already running
if start-stop-daemon --stop --quiet --signal 0 --pid /var/run/kdm.pid \
                     --exec /usr/bin/kdm; then
  NOSTART=yes
  KDM_RUNNING=yes
fi
# or if the options file says not to
if ! grep -qs ^restart-on-upgrade /etc/kde3/kdm/kdm.options; then
  NOSTART=yes
fi

if [ -e /etc/init.d/kdm ]; then
  update-rc.d "$THIS_PACKAGE" defaults 99 01 > /dev/null
fi

[ -n "$NOSTART" ] || invoke-rc.d "$THIS_PACKAGE" start || true

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

#DEBHELPER#

exit 0


