#!/bin/bash

[ -s /etc/sysconfig/autohalt ] && . /etc/sysconfig/autohalt

AUTOHALTDAYSOFINACTIVITY=${AUTOHALTDAYSOFINCATIVITY:-2}
AUTOHALTMESSAGE=${AUTOHALTMESSAGE:-"autohalt due to inactivity for $AUTOHALTDAYSOFINACTIVITY days"}
AUTOHALTWAITTILLSHUTDOWN=${AUTOHALTWAITTILLSHUTDOWN:-now}
let SECS=86400*AUTOHALTDAYSOFINACTIVITY

LASTLOGIN=$(LANG=C last -F -n 1 | sed -e "s/.*[A-Z][a-z][a-z] [A-Z][a-z][a-z] [ 1-3][0-9] [0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\} [0-9]\{4\} -* *\(.\{24\}\).*/\1/;q")
LASTLOGINSECS=$(date -d "${LASTLOGIN/still logged in */now}" +%s)
NOW=$(date +%s)
let DIFFSECS=NOW-LASTLOGINSECS

if [ $DIFFSECS -gt $SECS ] && [ $(cut -f1 -d. /proc/uptime) -gt $SECS ] ; then
   logger $AUTOHALTMESSAGE
   /sbin/shutdown -h "$AUTOHALTWAITTILLSHUTDOWN" "$AUTOHALTMESSAGE"
fi

exit 0
