#!/bin/sh

# We're called with the real Kodi executable as
# first argument, followed by any Kodi extra args
KODI="${1}"
shift

# In case someone asked we terminate, just kill
# the Kodi process
trap_kill() {
    LOOP=0
    killall "${KODI##*/}"
}
trap trap_kill INT QUIT TERM

LOOP=1
while [ ${LOOP} -eq 1 ]; do
    # Hack: BusyBox ash does not catch signals while a non-builtin
    # is running, and only catches the signal when the non-builtin
    # command ends. So, we just background the Kodi binary, and wait
    # for it. But BusyBox' ash's wait builtin does not return the
    # exit code even if there was only one job (which is correct
    # for POSIX). So we explicitly wait for the Kodi job
    "${KODI}" "${@}" &
    wait %1
    ret=$?
    case "${ret}" in
        0)  ;;
        64) poweroff; LOOP=0;;
        66) reboot;   LOOP=0;;
        *)  # Crash
            sleep 1
            ;;
    esac
done
exit ${ret}
