#!/sbin/openrc-run

description="LXDE Display Manager (LXDM)"

command="/usr/sbin/lxdm-binary"
pidfile="/var/run/lxdm.pid"

HEED_DEFAULT_DISPLAY_MANAGER=true
DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager

depend() {
	need localmount dbus acpid
	use logger
	after acpid rsyslog
	provide xdm display-manager
}

start_pre() {
	[ -x "$command" ] || return 1
	if [ -r /etc/default/locale ]; then
		. /etc/default/locale
		export LANG LANGUAGE
	fi

	if [ -e "$DEFAULT_DISPLAY_MANAGER_FILE" ] && \
		[ "$HEED_DEFAULT_DISPLAY_MANAGER" = "true" ]; then
		if [ "$(cat "$DEFAULT_DISPLAY_MANAGER_FILE" 2>/dev/null)" != "/usr/sbin/lxdm" ]; then
			einfo "Not starting LXDE Display Manager; it is not the default display manager"
			return 1
		fi
	fi
}

start() {
	start_pre || return $?
	ebegin "Starting ${RC_SVCNAME}"
	start-stop-daemon -S -p "$pidfile" -n lxdm-binary \
		-x "$command" -- -d
	eend $?
}

stop() {
	ebegin "Stopping ${RC_SVCNAME}"
	start-stop-daemon -K -p "$pidfile" -n lxdm-binary -R 5
	eend $?
	rm -f "$pidfile"
}
