#! /bin/sh

# Script designed to clean up (zip/delete) old files
# Adjust the variables below and then copy/symlink this script
# to /etc/cron/cron.{hourly,daily}

# We want to keep the filenames dated and that confuses logrotate,
# hence this script.

# Number of pcap files per client
NUMFILES=8
ZIPAFTER=3
VERBOSE=0

# Path where the logfiles reside in
BASEPATH="/var/lib/osmo-pcap/"

# Find the client names present in basepath
# Check how many files there are for each client
# Delete files in excess of NUMFILES

cd "$BASEPATH"


do_cleanup()
{
	i=1
	find . -name "trace-$1*" |sort -r | while read LOG; do
		if [ $i -gt $NUMFILES ]; then
			[ $VERBOSE -eq 1 ] && echo "Deleting file \"$LOG\""
			rm -f "$LOG"
		elif [ $i -gt $ZIPAFTER ]; then
				if [ "${LOG##*.}" != "gz" ]; then
					[ $VERBOSE -eq 1 ] && echo "Compressing file \"$LOG\""
					gzip "$LOG"
				fi
		else
			[ $VERBOSE -eq 1 ] && echo "Noop for file \"$LOG\""
		fi
		i=$(($i+1))
	done
}

find . -name "trace-*" |sed -e "s/.*trace-\([^-]\+\).*/\1/" |sort |uniq | while read CLIENT; do
	[ $VERBOSE -eq 1 ] && echo "Cleaning logs for $CLIENT"
	do_cleanup "$CLIENT"
done
