#!/bin/sh
# Debian wdm package configuration script
# Copyright 2001 Branden Robinson.
# Copyright 2005 Vladimir Shakhov.
# Licensed under the GNU General Public License, version 2.  See the file
# /usr/share/common-licenses/GPL or <http://www.gnu.org/copyleft/gpl.txt>.

set -e

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

THIS_PACKAGE=wdm
DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager

# set default display manager

db_get shared/default-x-display-manager
OLD_DEFAULT="$RET"

OWNERS=
if db_metaget shared/default-x-display-manager owners; then
  OWNERS="$RET"
fi

CHOICES=
if db_metaget shared/default-x-display-manager choices; then
  CHOICES="$RET"
fi

# hack to upgrade from /usr/X11/bin/wdm to /usr/bin/wdm
# for versions upgrade from early than 1.28-2
NEW_WDM_DAEMON="/usr/bin/wdm"
OLD_WDM_INSTALLED="no"
if grep -qsv $NEW_WDM_DAEMON $DEFAULT_DISPLAY_MANAGER_FILE ; then
  OLD_WDM_INSTALLED="yes" 
fi

if [ "$OWNERS" != "$CHOICES" ]; then
  echo "X display managers now available are \"$OWNERS\""
  db_subst shared/default-x-display-manager choices $OWNERS
  db_fset shared/default-x-display-manager seen false
fi

# debconf is not a registry; use the current contents of the default display
# manager file to pre-answer the question if possible
if [ -e "$DEFAULT_DISPLAY_MANAGER_FILE" ]; then
  CURRENT_DEFAULT=$(basename "$(grep -v '^[[:space:]]*#' \
                                "$DEFAULT_DISPLAY_MANAGER_FILE" |
                                head -n 1)")
  if [ -n "$CURRENT_DEFAULT" ]; then
    if ! which "$CURRENT_DEFAULT" >/dev/null 2>&1; then
      echo "default display manager \"$CURRENT_DEFAULT\" specified in" \
              "$DEFAULT_DISPLAY_MANAGER_FILE does not exist or is not" \
              "executable"
    fi
    db_set shared/default-x-display-manager "$CURRENT_DEFAULT"
  fi
else
  CURRENT_DEFAULT=
  if db_get shared/default-x-display-manager; then
    CURRENT_DEFAULT="$RET"
  fi
fi

db_input high shared/default-x-display-manager || true
db_go

# using this display manager?
NEW_DEFAULT=
if db_get shared/default-x-display-manager; then
  NEW_DEFAULT="$RET"
fi

# move the default display manager file if we're going to change it
if [ -n "$NEW_DEFAULT" ]; then
  if [ "$NEW_DEFAULT" != "$CURRENT_DEFAULT" ]; then
    if [ -e "$DEFAULT_DISPLAY_MANAGER_FILE" ]; then
      echo "preparing to change default X display manager from" \
              "\"$CURRENT_DEFAULT\" to \"$NEW_DEFAULT\""
      mv "$DEFAULT_DISPLAY_MANAGER_FILE" \
         "$DEFAULT_DISPLAY_MANAGER_FILE.dpkg-tmp"
    fi
  fi
fi

exit 0

# vim:set ai et sts=2 sw=2 tw=0:
