#! /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
            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 /var/log/wtmp.1 -p | sort -nr +1 >> /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 +1 >> /var/log/wtmp.report
	echo >> /var/log/wtmp.report
	last >> /var/log/wtmp.report
    fi

fi
