X-Git-Url: https://www.fleuret.org/cgi-bin/gitweb/gitweb.cgi?p=scripts.git;a=blobdiff_plain;f=gma.sh;h=e266737f0ea54e14e61bcf592bd057c1b912059e;hp=640c7f3cb4c16955526b0ed771903a96b3d70dff;hb=22ad92b9f8cf9f726ff9b9caa530ecf13d35fc87;hpb=c33caf969cac88b0b60cbec899ff1f3f24e39a31 diff --git a/gma.sh b/gma.sh index 640c7f3..e266737 100755 --- a/gma.sh +++ b/gma.sh @@ -20,7 +20,7 @@ set -e function usage () { - echo "gma.sh [--body] [--from|--to|--fromto] []" + echo "gma.sh [--body] [--keepspam] [--subject|--from|--to|--fromto] []" } RESULT_MBOX="/tmp/gma" @@ -30,6 +30,12 @@ if [[ -z "${MAIL_ARCHIVE_DIR}" ]]; then exit 1 fi +if [[ $(which ionice) ]]; then + IONICE="ionice -c3" +else + IONICE="" +fi + HEADER_ONLY="-H" while [[ $1 ]]; do @@ -45,6 +51,10 @@ while [[ $1 ]]; do HEADER_ONLY="" ;; + "--intense") + IONICE="" + ;; + "--keepspam") KEEP_SPAM=1 ;; @@ -61,8 +71,15 @@ while [[ $1 ]]; do RE_PREFIX="^(From|To):.*" ;; + "--subject") + RE_PREFIX="^Subject:.*" + ;; + *) if [[ ${PATTERN} ]]; then + # If we already have the pattern to match in the + # message, get the new argument as a pattern for the + # filename if [[ ${FILE_PATTERN} ]]; then usage exit 1 @@ -84,7 +101,7 @@ if [[ -z "${PATTERN}" ]]; then fi [[ ${FILE_PATTERN} ]] || FILE_PATTERN="${MAIL_ARCHIVE_DIR}/*/*/*" -[[ ${SIZE_FILE_PATTERN} ]] || SIZE_FILE_PATTERN="${MAIL_ARCHIVE_DIR}/" +[[ ${SIZE_FILE_PATTERN} ]] || SIZE_FILE_PATTERN="${MAIL_ARCHIVE_DIR}" SIZE=$(\dus ${SIZE_FILE_PATTERN} | cut -f 1 -d" ") @@ -94,13 +111,13 @@ echo " writing result in ${RESULT_MBOX}" if [[ ${KEEP_SPAM} ]]; then - cat ${FILE_PATTERN} \ + ${IONICE} cat ${FILE_PATTERN} \ | pv -s ${SIZE} -p -t -e - \ | mboxgrep ${HEADER_ONLY} -i "${RE_PREFIX}${PATTERN}" > ${RESULT_MBOX} else - cat ${FILE_PATTERN} \ + ${IONICE} cat ${FILE_PATTERN} \ | pv -s ${SIZE} -p -t -e - \ | mboxgrep ${HEADER_ONLY} -i "${RE_PREFIX}${PATTERN}" \ | mboxgrep ${HEADER_ONLY} -v '^Subject:.*SPAM' > ${RESULT_MBOX}