#!/bin/sh

# Size of spool area in Kilobytes
prefix=/usr
CACHE_SPOOLDIR=`egrep '^SpoolDirectory' /etc/newscache.conf | cut -d ' ' -f 2`
CACHE_SPOOLSIZE=`egrep '^SpoolSize' /etc/newscache.conf | cut -d ' ' -f 2`
TEMPFILE=/tmp/expire.$$
TEMPFILE2=/tmp/expire2.$$

while [ "$#" -gt 0 ]; do
  if [ "X$1" = "X-s" ]; then
    CACHE_SPOOLSIZE=$2
    shift; shift
  else
    echo "Usage: $0 [-s #]"
    exit 1
  fi
done

CACHE_CURRSIZE=`du -sk $CACHE_SPOOLDIR | awk '{print $1}'`
if [ "yes" = "yes" ]; then
  find $CACHE_SPOOLDIR -name .db -type f -printf "%A@ %h\n" | sort -n >$TEMPFILE
else
  find $CACHE_SPOOLDIR -name .db -type f -exec ${prefix}/sbin/stat.pl {} ";" | sort -n >$TEMPFILE
fi

while [ "$CACHE_CURRSIZE" -gt "$CACHE_SPOOLSIZE" ]; do
  GROUP=`head -1 $TEMPFILE | awk '{print $2}'`
  if [ "X$GROUP" = "X" ]; then
    break
  fi

#  ls -la $GROUP/.db $GROUP/.art*

  for file in $GROUP/.db $GROUP/.art*
  do
    rm -f $file
  done

  tail +2 $TEMPFILE >$TEMPFILE2
  mv $TEMPFILE2 $TEMPFILE
  CACHE_CURRSIZE=`du -sk $CACHE_SPOOLDIR | awk '{print $1}'`
done

rm -f $TEMPFILE
