#!/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"

test -x /usr/sbin/accton || exit 0

	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
			WTMP="/var/log/wtmp.1"
		elif [ -f /var/log/wtmp.1.gz ]
		then
			WTMP_WAS_GZIPPED="1"
			WTMP="`tempfile`"

			gunzip -c /var/log/wtmp.1.gz > "${WTMP}"
		fi

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

		if [ -n "${WTMP_WAS_GZIPPED}" ]
		then
			# remove temporary file
			rm -f "${WTMP}"
		fi
	else
		ac -p | sort -nr -k2 >> /var/log/wtmp.report
		echo >> /var/log/wtmp.report
		last >> /var/log/wtmp.report
	fi


chown root:adm /var/log/wtmp.report
chmod 640 /var/log/wtmp.report
