#!/bin/sh
#
# rotate_freenet_logs

PATH=/bin:/usr/bin:/usr/sbin

# Get current time as HH:MM-{AM|PM}

d=$(date "+%I:%M-%p")

# Make sure these are set properly!

FREENET_HOME=/home/freenet
FREENET_LOGDIR=$FREENET_HOME/logs
FREENET_LOG=freenet.log

cd $FREENET_HOME

if [ -f freenet.pid ]
then
	pid=$(cat freenet.pid)
else
	echo "freenet.pid file not found" >&2
	exit 1
fi

if ! ps ax | grep -qw "^ *$pid"
then
	echo "Freenet doesn't seem to be running" >&2
	rm -f freenet.pid
	exit 1
fi

if [ ! -d $FREENET_LOGDIR ]
then
	echo Directory $FREENET_LOGDIR does not exist >&2
	exit 1
fi

if ! [ -r $FREENET_LOGDIR -a -w $FREENET_LOGDIR -a -x $FREENET_LOGDIR ]
then
	echo "Need full read/write/exec access to $FREENET_LOGDIR" >&2
	exit 1
fi

cd $FREENET_LOGDIR

if [ ! -f $FREENET_LOG ]
then
	echo $FREENET_LOGDIR/$FREENET_LOG does not exist >&2
	exit 1
fi

if ! [ -r $FREENET_LOG -a -w $FREENET_LOG ]
then
	echo Need read/write access to $FREENET_LOGDIR/$FREENET_LOG >&2
	exit 1
fi

cp $FREENET_LOG "freenet.log-$d"

echo Log rotated at $d > $FREENET_LOG

bzip2 -fq "freenet.log-$d"

chown freenet:freenet "freenet.log-$d.bz2"

exit 0
