#! /bin/sh
# File:       mf-archive
# Version:    1.11
# Purpose:    Archives rejected messages saved by rays-filter
#             (Run once every 24 hours e.g. as 'cron' job) 
# Requires:   mail-filter.conf
# Written by: R. Butler <butlerra@sbu.ac.uk>
# Date:       08-Jun-2000
# Revised:    19-Jul-2000
#
# Copyright (C) 2000 South Bank University, London.
# (Please see the full copyright notice in 'copyright.txt')

# Get the WORK_DIR variable from mail-filter.conf
CONF_FILE="/usr/local/etc/mail-filter/mail-filter.conf"
. $CONF_FILE

# LOGFILE contains output from this script.
LOGFILE=${WORK_DIR}/mf-archive.log

# TMPFILE is used for trimming the log file to MAX_LOG lines.
TMPFILE=${WORK_DIR}/mf-archive.tmp

# MAX_LOG is the maximum number of lines to keep in the log file.
MAX_LOG=500

# REJECTS is the directory where rejected messages are saved.
REJECTS=${WORK_DIR}/rejects
if [ ! -d $REJECTS ]
then
   echo "$0: Rejects directory not found"
   echo "   (${REJECTS})"
   exit 1
fi

for SUBDIR in Arc-yesterday Arc-2-days-ago Arc-3-days-ago Arc-4-days-ago \
              Arc-5-days-ago Arc-6-days-ago Arc-7-days-ago
do
   if [ ! -d ${REJECTS}/$SUBDIR ]
   then
      mkdir ${REJECTS}/$SUBDIR
   fi
done

rm -f ${REJECTS}/Arc-7-days-ago/* >> $LOGFILE 2>&1
mv ${REJECTS}/Arc-6-days-ago/* ${REJECTS}/Arc-7-days-ago >> $LOGFILE 2>&1
mv ${REJECTS}/Arc-5-days-ago/* ${REJECTS}/Arc-6-days-ago >> $LOGFILE 2>&1
mv ${REJECTS}/Arc-4-days-ago/* ${REJECTS}/Arc-5-days-ago >> $LOGFILE 2>&1
mv ${REJECTS}/Arc-3-days-ago/* ${REJECTS}/Arc-4-days-ago >> $LOGFILE 2>&1
mv ${REJECTS}/Arc-2-days-ago/* ${REJECTS}/Arc-3-days-ago >> $LOGFILE 2>&1
mv ${REJECTS}/Arc-yesterday/*  ${REJECTS}/Arc-2-days-ago >> $LOGFILE 2>&1

for FILE in `ls ${REJECTS}`
do
   if [ -f ${REJECTS}/$FILE -a -s ${REJECTS}/$FILE ]
   then
      DATE=`date +"%d-%b-%Y %T"`
      echo "$DATE : Moving file: $FILE" >> $LOGFILE
      mv ${REJECTS}/$FILE ${REJECTS}/Arc-yesterday 2>> $LOGFILE
   fi
done

tail -$MAX_LOG $LOGFILE > $TMPFILE
mv $TMPFILE $LOGFILE

