#!/bin/sh
# Checkmk-Local-Check (bashclub-updates): WARN ohne automatische Updates, wenn
# ein nötiger Neustart nicht automatisch kommt (REBOOT=never) oder die Frist
# (REBOOT_DEADLINE) überschritten ist, der Neustart also trotzdem ausblieb
service='"OS-Updates"'
AUTO=yes REBOOT=window REBOOT_DEADLINE=7d
# shellcheck source=/dev/null
[ -r /etc/bashclub/updates.conf ] && . /etc/bashclub/updates.conf
needed=$(cat /run/bashclub-updates/reboot-needed 2>/dev/null || true)
since=$(cat /var/lib/bashclub-updates/needed-since 2>/dev/null || true)
case $REBOOT_DEADLINE in
*d) limit=$((${REBOOT_DEADLINE%d} * 86400)) ;;
*h) limit=$((${REBOOT_DEADLINE%h} * 3600)) ;;
*) limit=604800 ;;
esac
# Eine Stunde Spielraum für Fenster und laufendes apt
overdue=no
if [ -n "$needed" ] && [ -n "$since" ] && [ "$(date +%s)" -gt $((since + limit + 3600)) ]; then overdue=yes; fi
if [ "$AUTO" != yes ]; then
	echo "1 $service - Updates nicht automatisch (AUTO=$AUTO)"
elif [ -n "$needed" ] && [ "$REBOOT" = never ]; then
	echo "1 $service - Neustart nötig: $needed (REBOOT=never)"
elif [ "$overdue" = yes ]; then
	echo "1 $service - Neustart überfällig (Frist $REBOOT_DEADLINE): $needed"
elif [ -n "$needed" ]; then
	echo "0 $service - automatisch, Neustart steht an: $needed"
else
	echo "0 $service - automatisch, REBOOT=$REBOOT"
fi
