#	@(#)lightenfs	1.2	/sccs/src/cmd/sadmin/shell/s.lightenfs
#	"lighten the ship" routine to clean up file systems

#!	chmod +x ${file}

set -- `getopt d:lt:v "$@"`  ||  exec $0

days=4
listonly=
threshold=4000
verbose=
for flag
{
	case "${flag}" in
	-d )
		days=$2
		shift
		;;
	-l )
		listonly=yes
		;;
	-t )
		threshold=$2
		shift
		;;
	-v )
		verbose=yes
		;;
	-- )
		shift
		break
		;;
	-* )
		admerr $0 "Bad flag argument '${flag}'."
		exit
		;;
	* )
		continue
	esac
	shift
}

if [ $# -ne 2 ]
then
	echo >&2 "Usage:  $0 [-d<days>] [-t<threshold>] [-v] [-l] filesystem patternfile
For more detail type:	prtdoc syscmd.`basename $0`"
	exit 1
fi

fs=$1
patternfile=$2
blocks=`expr "\`df ${fs}\`" : '.*[^0-9]\([0-9]\{1,\}\) blocks '`
if [ ${blocks} -ge ${threshold} ]
then
	if [ ${verbose} ]
	then
		echo ${blocks} blocks greater than threshold ${threshold}
	fi
	exit 0
fi
if [ ${verbose} ]
then
	echo ${blocks} blocks free, need ${threshold}
fi
patterns=`sed 's/.*/\\\\;&;p/' ${patternfile}`

find ${fs} -type f -mtime +${days} -print 2>/dev/null  |
	sed -n "${patterns}"  |
	xargs ls -tr  |
	while read f
	do
		if [ ${listonly} ]
		then
			echo ${f}
			continue
		fi
		rm -f ${f}
		blocks=`expr "\`df ${fs}\`" : '.*[^0-9]\([0-9]\{1,\}\) blocks '`
		if [ ${verbose} ]
		then
			echo rm ${f} -- now ${blocks} blocks free
		fi
		if [ ${blocks} -ge ${threshold} ]
		then
			if [ ${verbose} ]
			then
				echo Threshold met.
			fi
			#	swallow the rest of the ls
			cat >/dev/null
			exit 0
		fi
	done