#!/usr/bin/env /lib/runit/invoke-run
#Copyright: 2026 Aitor <aitor@genuen.org>
#License: CC0-1.0

DEFAULT_DISPLAY_MANAGER=$(cat /etc/X11/default-display-manager 2>/dev/null || true)

# don't start if nodm is not the default DM
if [ -n "$DEFAULT_DISPLAY_MANAGER" ] && [ "$DEFAULT_DISPLAY_MANAGER" != "/usr/sbin/nodm" ]; then
	exit 161
fi

if [ -f /etc/default/nodm ]; then
	# shellcheck disable=SC1091
	. /etc/default/nodm
else
	NODM_ENABLED=true
	NODM_XSESSION=/etc/X11/Xsession
	NODM_FIRST_VT=7
	NODM_X_OPTIONS="-nolisten tcp"
	NODM_USER=user
	NODM_MIN_SESSION_TIME=60
	NODM_X_TIMEOUT=300
	NODM_OPTIONS=
fi

case "${NODM_ENABLED}" in
	no|false|NO|FALSE) exit 161 ;;
esac

_xs=${NODM_XSESSION%% *}
if [ ! -x "$_xs" ]; then
	echo "nodm: NODM_XSESSION not executable: ${NODM_XSESSION}" >&2
	exit 162
fi

sv start dbus || true
sv start elogind || true

if [ -x /bin/plymouth ]; then
	/bin/plymouth quit || true
fi

export NODM_XSESSION NODM_X_OPTIONS NODM_USER NODM_MIN_SESSION_TIME
export NODM_FIRST_VT NODM_X_TIMEOUT

exec 2>&1
exec /usr/sbin/nodm ${NODM_OPTIONS}
