Initial commit.
[scripts.git] / gma.sh
1 #!/bin/bash
2
3 ##################################################################
4 # START_IP_HEADER                                                #
5 #                                                                #
6 # Written by Francois Fleuret                                    #
7 # Contact <francois.fleuret@idiap.ch> for comments & bug reports #
8 #                                                                #
9 # END_IP_HEADER                                                  #
10 ##################################################################
11
12 set -e
13
14 RESULT_MBOX="/tmp/gma"
15
16 if [[ -z "${MAIL_ARCHIVE_DIR}" ]]; then
17     echo "Undefined \$MAIL_ARCHIVE_DIR" >&2
18     exit 1
19 fi
20
21 if [[ $1 ]]; then
22
23     PATTERN=$1
24
25     if [[ -z "${PATTERN}" ]]; then
26         echo  "No pattern." >&2
27         exit 1
28     fi
29
30     if [[ $2 ]]; then
31         FILE_PATTERN="${MAIL_ARCHIVE_DIR}/${2}/*/*gz"
32         SIZE=$(\dus ${MAIL_ARCHIVE_DIR}/${2} | cut -f 1 -d" ")
33     else
34         FILE_PATTERN="${MAIL_ARCHIVE_DIR}/*/*/*gz"
35         SIZE=$(\dus ${MAIL_ARCHIVE_DIR}/ | cut -f 1 -d" ")
36     fi
37
38     echo "Looking for ${PATTERN}"
39     echo "        in ${FILE_PATTERN}"
40     echo "        writing result in ${RESULT_MBOX}"
41
42     cat ${FILE_PATTERN} \
43         | pv -s ${SIZE} -p -t -e - \
44         | zcat \
45         | mboxgrep -i "$1" \
46         | mboxgrep -v '^Subject:.*SPAM' > ${RESULT_MBOX}
47     echo "Found "$(grep ^"From " ${RESULT_MBOX} | wc -l)" messages."
48
49 else
50
51     rm -i ${RESULT_MBOX}
52
53 fi