]> git.donarmstrong.com Git - bin.git/blobdiff - getmail
* add total element to the invoice template
[bin.git] / getmail
diff --git a/getmail b/getmail
index 62a1ce05793c09d9af64ba3516bd649238689205..94808dde6dc6cf5c8ea8251f40d70f58b836250f 100755 (executable)
--- a/getmail
+++ b/getmail
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 # Configure the two things below for your MUA and the host being run.
-IMAPHOST=rzlab.ucr.edu
+IMAPHOST=linnode.donarmstrong.com
 MUA=mutt
 
 #set -x
@@ -12,9 +12,27 @@ if [[ -z "$CRON" && -e ~/.nocheck ]]; then
     exit 0;
 fi;
 
-# See if the server exists
+if [ -z "$HOSTNAME" ]; then
+    HOSTNAME="$(hostname)"
+fi;
+
+# if we're not running under cron or there is a mailserver running
 if [ -z "$CRON" ] || kill -0 `pgrep -U $(id -u) -x $MUA` 2>/dev/null; then
+    # and we can ping the imap host
     if ping -q -c 3 $IMAPHOST >/dev/null 2>&1; then
+       # source the ssh info if it exists
+       if [ -e ~/.ssh/"ssh_agent_info_$HOSTNAME" ]; then
+           . ~/.ssh/"ssh_agent_info_$HOSTNAME" > /dev/null;
+       fi;
+       PID="$(pgrep -U $(id -u) offlineimap)";
+       if [ -n "$PID" ]; then
+           # if offlineimap has been running for more than 20 minutes
+           if [ $(( $(date +'%s') - $(stat -c '%Y' /proc/$PID/cmdline) )) -gt 1200 ]; then
+               kill "$PID" >/dev/null 2>&1 || true;
+               sleep 1
+               kill -0 "$PID" >/dev/null 2>&1 && kill -9 "$PID" >/dev/null 2>&1;
+           fi;
+       fi;
        if nice -n 19 offlineimap -o -u Noninteractive.Basic 2>&1 |grep validity| \
            perl -ne 'my ($account,$list) = /UID validity problem for folder ([\w-]+)\.([\w-]+)/;
                       next unless defined $account and length $account;
@@ -23,7 +41,10 @@ if [ -z "$CRON" ] || kill -0 `pgrep -U $(id -u) -x $MUA` 2>/dev/null; then
            for account in bugs lists; do
                find /home/don/Mail/$account -maxdepth 1 -mindepth 1 -type d \
                    -exec sh -c 'test $(find {} -type f |wc -l) -eq 0' ';' \
-                   -printf '%f\000'|xargs -0 -n 1 ~/bin/deletemailbox -a $account >/dev/null
+                   -printf '%f\000'|xargs -0 -rn 1 ~/bin/deletemailbox -a $account >/dev/null 2>&1;
+               find /home/don/Mail/$account -maxdepth 2 -mindepth 2 -iname 'new' \
+                   -type d -ctime +60 -printf '%h\n'|xargs -rn 1 basename|xargs \
+                   -rn 1 /home/don/bin/deletemailbox -a $account >/dev/null 2>&1;
            done;
        fi;
     fi;