#!/bin/sh

PATH=/sbin:/usr/sbin:/bin:/usr/bin

# We need to source this so that the login screens get translated
[ -f /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n
[ -f /etc/locale.conf ] && . /etc/locale.conf

# Run preferred X display manager
preferred=
if [ -f /etc/sysconfig/desktop ]; then
	. /etc/sysconfig/desktop
	if [ "$DISPLAYMANAGER" = GNOME ]; then
		preferred=/usr/sbin/gdm
	elif [ "$DISPLAYMANAGER" = KDE ]; then
		preferred=/usr/bin/kdm
	elif [ "$DISPLAYMANAGER" = LightDM ]; then
		preferred=/usr/sbin/lightdm
	elif [ "$DISPLAYMANAGER" = LXDE ]; then
		preferred=/usr/sbin/lxdm
	elif [ "$DISPLAYMANAGER" = WDM ]; then
		preferred=/usr/bin/wdm
	elif [ "$DISPLAYMANAGER" = XDM ]; then
		preferred=/usr/bin/xdm
	elif [ "$DISPLAYMANAGER" = SDDM ]; then
		preferred=/usr/bin/sddm
	elif [ -n "$DISPLAYMANAGER" ]; then
		preferred=$DISPLAYMANAGER
	fi
fi

# shut down boot splash
plymouth quit >/dev/null 2>&1

[ -n "$preferred" -a -x "$preferred" ] && exec $preferred "$@" >/dev/null 2>&1 </dev/null

# Fallbacks, in order
[ -x /usr/bin/xdm ] && exec /usr/bin/xdm -nodaemon "$@" >/dev/null 2>&1 </dev/null
[ -x /usr/sbin/lightdm ] && exec /usr/sbin/lightdm "$@" >/dev/null 2>&1 </dev/null
[ -x /usr/sbin/lxdm ] && exec /usr/sbin/lxdm "$@" >/dev/null 2>&1 </dev/null
[ -x /usr/sbin/gdm ] && exec /usr/sbin/gdm "$@" >/dev/null 2>&1 </dev/null
[ -x /usr/bin/kdm ] && exec /usr/bin/kdm "$@" >/dev/null 2>&1 </dev/null
[ -x /usr/bin/wdm ] && exec /usr/bin/wdm "$@" >/dev/null 2>&1 </dev/null
[ -x /usr/bin/sddm ] && exec /usr/bin/sddm "$@" >/dev/null 2>&1 </dev/null

# catch all exit error
exit 1
