#!/bin/sh
#
# crashsweep [directory with logfiles] [email address to send report to]

if [ "$#" -ne 2 ]; then
    echo "Usage: crashsweep [crashfile directory] [email address]"
    exit 1
fi

CRASHDIR=$1
MAILTO=$2
TMPFILE=/tmp/crashsweep.$$

cd ${CRASHDIR}
if [ -e ${CRASHDIR}/.lastsweep ]; then
    find ${CRASHDIR} -newer ${CRASHDIR}/.lastsweep -type f > ${TMPFILE}
else
    find ${CRASHDIR} -type f > ${TMPFILE}
fi


for f in `cat ${TMPFILE}`; do
    head -1 ${f} | grep 'KeyError.*TYPE_ID' > /dev/null
    if [ $? -eq 0 ]; then
         sed -n -e '/^ *path=/p' ${f} \
         | sed -e 's/^ *path=//' -e s/\'//g -e 's/^/missing metadata: /' \
             >> ${TMPFILE}-mail
    fi 
done

cat ${TMPFILE} | xargs head -1 >> ${TMPFILE}-mail

if [ -s ${TMPFILE}-mail ]; then
    mail -s "Esmond Crash Report" ${MAILTO} < ${TMPFILE}-mail
fi

rm -f ${TMPFILE}*

touch ${CRASHDIR}/.lastsweep
