#!/bin/sh
# qrk-kiosk-guard - stellt sicher, dass die Kasse laeuft.
# Wenn auf seat0 weder die Kassa-Session noch eine Admin-Session aktiv ist
# (z. B. haengt SDDM im Greeter), wird SDDM neu gestartet -> Autologin Kiosk.
set -u

ADMIN_USER="chris"
if [ -r /etc/qrk-kiosk/device.conf ]; then
    # shellcheck disable=SC1091
    . /etc/qrk-kiosk/device.conf
    ADMIN_USER="${ADMIN_USER:-chris}"
fi

active="$(loginctl list-sessions --no-legend 2>/dev/null | awk '$4=="seat0"{print $3}')"
case "$active" in
    *kassa*)          exit 0 ;;
    *"$ADMIN_USER"*)  exit 0 ;;
esac

logger -t qrk-kiosk-guard "keine Kassa-/Admin-Session aktiv - starte SDDM neu"
systemctl restart sddm
exit 0