#!/bin/bash

xserver=wibble

set -e

# XF86Config should be in /etc/X11/XF86Config not /etc/XF86Config

if [ -f /etc/XF86Config -a ! -e /etc/X11/XF86Config ] ; then
  echo "Note: Moving /etc/XF86Config to /etc/X11/XF86Config."
  mv /etc/XF86Config /etc/X11/XF86Config
fi

# /usr/X11R6/lib/X11/XF86Config should be a symbolic link to
# /etc/X11/XF86Config

if [ ! -L /usr/X11R6/lib/X11/XF86Config ]; then
  if [ -f /usr/X11R6/lib/X11/XF86Config ]; then
    echo "Warning: /usr/X11R6/lib/X11/XF86Config is an ordinary file."
    echo "This file is being moved to /etc/X11/XF86Config."
    rm -f /etc/X11/XF86Config
    mv /usr/X11R6/lib/X11/XF86Config /etc/X11/XF86Config
  else
    if [ -e /usr/X11R6/lib/X11/XF86Config ]; then
      echo "Warning: /usr/X11R6/lib/X11/XF86Config is not a symlink."
      echo "It is being renamed to /usr/X11R6/lib/X11/XF86Config.old"
      mv /usr/X11R6/lib/X11/XF86Config /usr/X11R6/lib/X11/XF86Config.old
    fi
  fi
  ln -s /etc/X11/XF86Config /usr/X11R6/lib/X11/XF86Config
fi

if [ ! -e /etc/X11/Xserver ]
then
  cat >/etc/X11/Xserver <<EOF
/bin/false
Console

The first line in this file is the full pathname of the default X server.
The second line shows who is allowed to run the X server:
RootOnly
Console      (anyone whose controlling tty is on the console)
Anybody
EOF
fi

update_xdm=0

if ! grep -q ^/usr/X11R6/bin/XF86_$xserver /etc/X11/Xserver
then
  echo -n "Do you want to make the $xserver X server the default? (y/n) [y] "
  
  read
  
  if [ "$REPLY" = "n" -o "$REPLY" = "N" ] ; then
    echo "The default X server will not be changed."
  else
    mv /etc/X11/Xserver /etc/X11/Xserver.old
    sed -e "1s/^.*$/\\/usr\\/X11R6\\/bin\\/XF86_$xserver/" /etc/X11/Xserver.old \
	>/etc/X11/Xserver

    if [ -L /usr/X11R6/bin/X -o ! -e /usr/X11R6/bin/X ]; then
  # We don't have an xbase package installed
      echo "You don't have the X server wrapper program installed. /etc/X11/X"
      echo "is being made into a symbolic link to your X server."
      echo "/usr/X11R6/bin/X is a symbolic link to /etc/X11/X."
  
      rm -f /usr/X11R6/bin/X
      ln -s /etc/X11/X /usr/X11R6/bin/X
  
      rm -f /etc/X11/X
      ln -s /usr/X11R6/bin/XF86_$xserver /etc/X11/X
  
    else
  # We've got an xbase; should have the wrapper program installed.
      rm -f /etc/X11/X
      ln -s /usr/X11R6/bin/X /etc/X11/X
    fi
  
    echo "The $xserver X server is now the default."
    update_xdm=1
  fi
fi

# Update the xdm configuration if necessary

if [ $update_xdm = 1 ]
then
  if ! grep /usr/X11R6/bin/X /etc/X11/xdm/Xservers >/dev/null 2>&1
  then
    echo "#debian-not-configured" >>/etc/X11/xdm/Xservers
  fi
fi

if [ -x /usr/sbin/xbase-configure ] ; then
  /usr/sbin/xbase-configure
fi

exit 0
