#!/bin/bash
# Copyright (C) 1999 - 2004 Red Hat, Inc. All rights reserved. This
# copyrighted material is made available to anyone wishing to use, modify,
# copy, or redistribute it subject to the terms and conditions of the
# GNU General Public License version 2.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

# check to see if the user has a preferred desktop
PREFERRED=
if [ -f /etc/sysconfig/desktop ]; then
    . /etc/sysconfig/desktop
    if [ "$DESKTOP" = "GNOME" ]; then
	PREFERRED=gnome-session
    elif [ "$DESKTOP" = "KDE" ]; then
	PREFERRED=startkde
    fi
fi

if [ -n "$PREFERRED" ] && which $PREFERRED >/dev/null 2>&1; then
    PREFERRED=`which $PREFERRED`
    exec $PREFERRED
fi

# now if we can reach here, either no desktop file was present,
# or the desktop requested is not installed.

if [ -z "$PREFERRED" ]; then
 
    GSESSION=gnome-session
    STARTKDE=startkde
 
    # by default, we run GNOME.
    if which $GSESSION >/dev/null 2>&1; then
	exec `which $GSESSION`
    fi

    # if GNOME isn't installed, try KDE.
    if which $STARTKDE >/dev/null 2>&1; then
	exec `which $STARTKDE`
    fi
fi

# Failsafe.

# these files are left sitting around by TheNextLevel.
rm -f $HOME/Xrootenv.0

# Argh! Nothing good is installed. Fall back to twm
{
    # gosh, neither fvwm95 nor fvwm2 is available; 
    # fall back to failsafe settings
    if [ -x /usr/bin/xclock ] ; then
	/usr/bin/xclock -geometry 100x100-5+5 &
    elif [ -x /usr/X11R6/bin/xclock ] ; then
	/usr/X11R6/bin/xclock -geometry 100x100-5+5 &
    fi
    if [ -x /usr/bin/xterm ] ; then
        /usr/bin/xterm -geometry 80x50-50+150 &
    fi
    if [ -x /usr/bin/mozilla -a -f /usr/share/doc/HTML/index.html ]; then
	/usr/bin/mozilla /usr/share/doc/HTML/index.html &
    fi
    if [ -x /usr/X11R6/bin/twm ] ; then
	exec /usr/X11R6/bin/twm
    fi
}
