#!/bin/sh
# Restart all exits in a locked system kiosk. Legacy sessions allow clean exit.
set -u
child=
child_group=0
cleanup() {
    if [ -n "$child" ]; then
        if [ "$child_group" -eq 1 ]; then
            kill -TERM "-$child" 2>/dev/null || kill -TERM "$child" 2>/dev/null || true
            kill -KILL "-$child" 2>/dev/null || kill -KILL "$child" 2>/dev/null || true
        else
            kill -TERM "$child" 2>/dev/null || true
        fi
        wait "$child" 2>/dev/null || true
        child=
    fi
}
stop() {
    trap '' INT TERM HUP
    cleanup
    exit 0
}
trap stop INT TERM HUP
while :; do
    /usr/bin/setsid /usr/bin/4web-kiosk --kiosk --managed-session &
    child=$!
    child_group=1
    wait "$child"
    result=$?
    cleanup
    if [ "$result" -eq 0 ] && [ "${FOURWEB_KIOSK_LOCKED:-0}" != 1 ]; then
        exit 0
    fi
    echo "4web-kiosk wurde mit Status $result beendet; Neustart in 3 Sekunden." >&2
    /usr/bin/sleep 3 &
    child=$!
    child_group=0
    wait "$child"
    child=
done
