summaryrefslogtreecommitdiffstats
path: root/core/modules/idleaction/data/opt/openslx/scripts/idle-daemon-launcher
blob: 3f20ca5eba92e6d74e04ab7528a3f3cb0ea5b453 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/ash

. /opt/openslx/config

CMD=

[ -n "$SLX_SHUTDOWN_TIMEOUT" ] && CMD="$CMD --poweroff-timeout $SLX_SHUTDOWN_TIMEOUT"

if [ -z "${SLX_EXAM}" ]; then
	# Exam mode inactive
	[ -n "$SLX_LOGOUT_TIMEOUT" ] && CMD="$CMD --logout-timeout $SLX_LOGOUT_TIMEOUT"
	[ -n "$SLX_SYSTEM_STANDBY_TIMEOUT" ] && CMD="$CMD --suspend-timeout $SLX_SYSTEM_STANDBY_TIMEOUT"

	[ -n "$SLX_SCREEN_SAVER_TIMEOUT" ] && CMD="$CMD --screensaver-timeout $SLX_SCREEN_SAVER_TIMEOUT"
	[ -n "$SLX_SCREEN_STANDBY_TIMEOUT" ] && CMD="$CMD --dpms-timeout $SLX_SCREEN_STANDBY_TIMEOUT"
	[ -n "$SLX_SCREEN_SAVER_GRACE_TIME" ] && CMD="$CMD --grace-period $SLX_SCREEN_SAVER_GRACE_TIME"
else
	# Exam mode active
	CMD="$CMD --min-idle 7200" # Ignore schedule if idle time is lower than 2h
	# Add additional times -- We might miss tightly scheduled ones because of --min-idle
	if [ -n "$SLX_SHUTDOWN_SCHEDULE" ]; then
		SLX_SHUTDOWN_SCHEDULE="$SLX_SHUTDOWN_SCHEDULE 23:00 4:00"
	elif [ -n "$SLX_REBOOT_SCHEDULE" ]; then
		SLX_REBOOT_SCHEDULE="$SLX_REBOOT_SCHEDULE 23:00 4:00"
	fi
fi

for t in $SLX_REBOOT_SCHEDULE; do
	CMD="$CMD --reboot $t"
done
for t in $SLX_SHUTDOWN_SCHEDULE; do
	CMD="$CMD --poweroff $t"
done


exec /opt/openslx/sbin/idle-daemon $CMD