#!/bin/sh
# kiosk-bootstrap - installiert QRK (ckvsoft-Repo) und AnyDesk.
#
# Laeuft als oneshot (kiosk-bootstrap.service) bewusst AUSSERHALB des
# apt-/dpkg-Vorgangs, damit der Paket-Lock nicht blockiert wird.
set -u

log() {
    logger -t kiosk-bootstrap -- "$*"
    echo "[kiosk-bootstrap] $*"
}

STAMP=/var/lib/qrk-kiosk/bootstrap-done

need_qrk=0
need_anydesk=0
need_epson=0
dpkg -s qrk >/dev/null 2>&1 || need_qrk=1
dpkg -s anydesk >/dev/null 2>&1 || need_anydesk=1
dpkg -s epson-tm-thermal >/dev/null 2>&1 || need_epson=1

if [ "$need_qrk" -eq 0 ] && [ "$need_anydesk" -eq 0 ] && [ "$need_epson" -eq 0 ]; then
    install -d "$(dirname "$STAMP")"
    touch "$STAMP"
    log "QRK, AnyDesk und Epson-Treiber sind bereits installiert"
    systemctl disable kiosk-bootstrap.service >/dev/null 2>&1 || true
    exit 0
fi

log "aktualisiere Paketlisten (ckvsoft + anydesk)"

# ckvsoft-Quelle mit aktuellem Debian-Codename erzeugen (trixie, bookworm, ...)
CODENAME="$(sed -n 's/^VERSION_CODENAME=//p' /etc/os-release 2>/dev/null)"
[ -n "$CODENAME" ] || CODENAME="trixie"
mkdir -p /etc/apt/sources.list.d
cat > /etc/apt/sources.list.d/ckvsoft-qrk-sources.list <<EOF
deb [arch=amd64 signed-by=/etc/apt/keyrings/ckvsoft-archive-keyring.gpg] https://repo.ckvsoft.at/ckvsoft ${CODENAME}-ckvsoft-stable main
EOF

apt-get update || log "WARNUNG: apt-get update teilweise fehlgeschlagen"

if [ "$need_qrk" -eq 1 ]; then
    log "installiere qrk"
    if ! DEBIAN_FRONTEND=noninteractive apt-get install -y qrk; then
        log "FEHLER: qrk konnte nicht installiert werden"
        exit 1
    fi
    log "qrk installiert"
fi

ok=1
if [ "$need_anydesk" -eq 1 ]; then
    log "installiere anydesk"
    if ! DEBIAN_FRONTEND=noninteractive apt-get install -y anydesk; then
        log "WARNUNG: anydesk konnte nicht installiert werden (wird erneut versucht)"
        ok=0
    fi
fi

if [ "$need_epson" -eq 1 ]; then
    log "installiere epson-tm-thermal"
    if ! DEBIAN_FRONTEND=noninteractive apt-get install -y epson-tm-thermal; then
        log "WARNUNG: epson-tm-thermal konnte nicht installiert werden (wird erneut versucht)"
        ok=0
    fi
fi

if [ "$ok" -eq 1 ]; then
    install -d "$(dirname "$STAMP")"
    touch "$STAMP"
    log "Bootstrap abgeschlossen"
    systemctl disable kiosk-bootstrap.service >/dev/null 2>&1 || true
fi

exit 0
