#!/usr/sbin/openrc-run

description="Light Display Manager"

command="/usr/sbin/lightdm"
pidfile="/var/run/lightdm.pid"

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

extra_started_commands="reload"

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 grep -wqs text /proc/cmdline; then
		ewarn "Not starting Light Display Manager (lightdm); found 'text' in kernel commandline."
		return 1
	fi

	if [ -e "$DEFAULT_DISPLAY_MANAGER_FILE" ] && \
		[ "$HEED_DEFAULT_DISPLAY_MANAGER" = "true" ]; then
		CONFIGURED_DAEMON=$(basename "$(cat "$DEFAULT_DISPLAY_MANAGER_FILE" 2>/dev/null)")
		if [ "$CONFIGURED_DAEMON" != lightdm ]; then
			einfo "Not starting Light 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 lightdm \
		-x "$command" -b
	eend $?
}

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

reload() {
	ebegin "Scheduling reload of Light Display Manager configuration"
	start-stop-daemon -K -s USR1 -p "${pidfile}"
	eend $?
}
