#!/bin/sh

HOME=/root
PATH=/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
export HOME PATH

# We need to source this so that the login screens get translated
. /etc/profile.d/lang.sh

signal_handler () {
    kill -TERM $!
    exit
}

# trap signals to be able to kill autologin
trap signal_handler SIGHUP SIGPIPE SIGINT SIGTERM

# Run preferred X display manager

# Try autologin first, if wanted...
AUTOLOGIN_EXE=/usr/sbin/autologin
AUTOLOGIN_CFG=/etc/sysconfig/autologin
if [ -x "$AUTOLOGIN_EXE" -a -s "$AUTOLOGIN_CFG" ]; then
	EXEC_ARGS=
	. "$AUTOLOGIN_CFG"
	"$AUTOLOGIN_EXE" $EXEC_ARGS &
	wait $!
fi

preferred=
log=
if [ -s /etc/sysconfig/desktop ]; then
	if fgrep -qs GNOME /etc/sysconfig/desktop; then
		preferred=gdm
	elif fgrep -qs KDE /etc/sysconfig/desktop; then
		preferred=kdm
		log=1
	elif fgrep -qs WindowMaker /etc/sysconfig/desktop; then
		preferred=wdm
	elif fgrep -qs AnotherLevel /etc/sysconfig/desktop; then
		preferred=xdm
	fi
fi
if [ -n "$preferred" ] && which "$preferred" >/dev/null 2>&1; then 
    if [ -n "$log" ]; then
	exec "$preferred" >/dev/null 2>&1 $@
    else
	exec "$preferred" $@
    fi
fi

if which kdm >/dev/null 2>&1; then
	preferred=kdm
	log=1
elif which gdm >/dev/null 2>&1; then
	preferred=gdm
elif which wdm >/dev/null 2>&1; then
	preferred=wdm
elif which xdm >/dev/null 2>&1; then
	preferred=xdm
fi

if [ -n "$preferred" ] && which "$preferred" >/dev/null 2>&1; then 
    if [ -n "$log" ]; then
	exec "$preferred" >/dev/null 2>&1 $@
    else
	exec "$preferred" $@
    fi
fi

exit 1
