Miscellaneous updates.
[scripts.git] / gma.sh
diff --git a/gma.sh b/gma.sh
index 46992a3..e266737 100755 (executable)
--- a/gma.sh
+++ b/gma.sh
@@ -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
             ;;
@@ -67,6 +77,9 @@ while [[ $1 ]]; do
 
         *)
             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
@@ -88,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" ")
 
@@ -98,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}