#!/bin/sh
# qrk-update - installiert nur die neuen qrk-Pakete (QRK informiert den
# Betreiber selbst ueber ein Update; der Neustart erfolgt MANUELL, wenn
# geschlossen ist). Es wird NIE erzwungen neu gestartet -> sicher in jeder
# Oeffnungszeit.
#
# Aufruf:     sudo qrk-update        (manuell jederzeit)
# Tageszeit:  qrk-update.timer (naechtlich, nur Pakete)
set -eu

log() {
    logger -t qrk-update -- "$*"
    echo "[qrk-update] $*"
}

# device.conf einlesen (QRK_BINARY, AUTO_REBOOT)
ADMIN_USER="chris"
QRK_BINARY="${QRK_BINARY:-qrk}"
AUTO_REBOOT="${AUTO_REBOOT:-false}"
if [ -r /etc/qrk-kiosk/device.conf ]; then
    # shellcheck disable=SC1091
    . /etc/qrk-kiosk/device.conf
    QRK_BINARY="${QRK_BINARY:-qrk}"
    AUTO_REBOOT="${AUTO_REBOOT:-false}"
fi

# Auto-Reboot-Einstellung fuer OS-Sicherheitsupdates aus device.conf setzen
# (false = keine erzwungenen Neustarts; Betreiber rebootet selbst).
if [ "$AUTO_REBOOT" = "true" ]; then
    _ar="true"
else
    _ar="false"
fi
{
    echo "Unattended-Upgrade::Automatic-Reboot \"${_ar}\";"
    echo "Unattended-Upgrade::Automatic-Reboot-Time \"04:30\";"
} > /etc/apt/apt.conf.d/52unattended-reboot

before="$(dpkg-query -W -f='${Version}' qrk 2>/dev/null || echo none)"

log "starte apt-get update"
apt-get update

log "aktualisiere qrk ($QRK_BINARY)"
DEBIAN_FRONTEND=noninteractive apt-get install -y --only-upgrade qrk

after="$(dpkg-query -W -f='${Version}' qrk 2>/dev/null || echo none)"

if [ "$before" = "$after" ]; then
    log "qrk unveraendert ($after)"
else
    log "qrk aktualisiert: $before -> $after"
    log "HINWEIS: Neue Version ist installiert; die Kasse nutzt sie beim"
    log "      naechsten manuellen Neustart (QRK zeigt das Update an)."
fi
log "fertig"