#! /bin/bash
#
# check_reboot_required.sh
# Copyright (C) 2021 Vintage Salt <rehashedsalt@cock.li>
#
# Distributed under terms of the MIT license.
#

rr="/var/run/reboot-required"
rrpkgs="/var/run/reboot-required.pkgs"
# 604800 - 1 week in seconds
threshold_crit="${1:-604800}"
# 259200 - 3 days in seconds
threshold_warn="${2:-259200}"
if [ -f "$rr" ]; then
	# We have a pending reboot; alert in different states depending on its age
	lastmod=$(date +%s -r "$rr")
	now=$(date +%s)
	pkgs="$(cat "$rr")"
	if [ -f "$rrpkgs" ]; then
		pkgs="$(cat "$rrpkgs")"
	fi
	if [ -z "$pkgs" ]; then
		pkgs="(No output)"
	fi
	if (( now - lastmod < threshold_warn )); then
		echo "OK - Pending reboot: $pkgs"
		exit 0
	elif (( now - lastmod < threshold_crit )); then
		echo "WARNING - Pending reboot older than $threshold_warn seconds: $pkgs"
		exit 1
	else
		echo "CRITICAL - Pending reboot older than $threshold_crit seconds: $pkgs"
		exit 2
	fi
else
	# We have no pending reboots
	echo "OK - No pending reboots"
	exit 0
fi