#!/bin/sh
#
# cron script to perform monthly login accounting.
#
# Written by Ian A. Murdock <imurdock@gnu.ai.mit.edu>
# Modified by Dirk Eddelbuettel <edd@debian.org>   
# Modified by Tero Tilus <terotil@www.haapavesi.fi>
#   patch adopted by Christian Perrier <bubulle@debian.org> for #187538

LOGROTATE="/etc/cron.daily/logrotate"

if [ -x /usr/sbin/accton ]
then
	echo "Login accounting for the month ended `date`:" > /var/log/wtmp.report
	echo >> /var/log/wtmp.report

	# The logrotate script happens to run before this one, effectively 
	# swallowing all information out of wtmp before we can use it. 
	# Hence, we need to use the previous file. Bad hack.
	# Too bad we never heard from the logrotate maintainer about this ...
	
	# edd 18 May 2002  make sure wtmp.1 exists

	if [ -f "${LOGROTATE}" ] && [ -x /usr/sbin/logrotate ]
	then
		if [ -f /var/log/wtmp.1 ]
		then
			LOGFILE="/var/log/wtmp.1"
		fi

		if [ -f /var/log/wtmp.1.gz ]
		then
			LOGFILE2="`tempfile`"
		fi

		if [ -n "${LOGFILE}" ] && [ -n "${LOGFILE2}" ]
		then
			ac -f "${LOGFILE2}" -f "${LOGFILE}" -p | sort -nr -k2 >> /var/log/wtmp.report
			echo >> /var/log/wtmp.report
			last -f "${LOGFILE2}" >> /var/log/wtmp.report
		elif [ -n "${LOGFILE}" ] && [ -z "${LOGFILE2}" ]
		then
			ac -f "${LOGFILE}" -p | sort -nr -k2 >> /var/log/wtmp.report
			echo >> /var/log/wtmp.report
			last -f "${LOGFILE}" >> /var/log/wtmp.report
		fi

		rm -f "${LOGFILE2}"
	else
		ac -p | sort -nr -k2 >> /var/log/wtmp.report
		echo >> /var/log/wtmp.report
		last >> /var/log/wtmp.report
	fi
fi
