X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=getmail;h=5d739a9609d9ddde25157eb82d67d73250e6f381;hb=4f092b957548ae1d87dc6ca70cd3fe99e797cf31;hp=e7a4ee2a3a3e02905429751165b44fa388ee8f8f;hpb=789f31d2b70d4fdd868403f23423ff825e6cef26;p=bin.git diff --git a/getmail b/getmail index e7a4ee2..5d739a9 100755 --- a/getmail +++ b/getmail @@ -1,10 +1,20 @@ #!/bin/sh +if [ -n "$VERBOSE" ]; then + set -x +fi; + +cmd_exists () { + if which "$1" >/dev/null 2>&1; then + return 0; + else + return 1; + fi; +} + # Configure the two things below for your MUA and the host being run. IMAPHOST=$( awk -F= '/remotehost/{print $2}' ~/.offlineimaprc | head -n 1 ) -MUA=mutt - -#set -x +MUAS="neomutt mutt mutt-ng" # Don't check mail if ~/.nocheck exists and we're not running # interactively. @@ -17,18 +27,20 @@ if [ -z "$HOSTNAME" ]; then fi; IONICE="" -if which ionice >/dev/null 2>&1; then +if cmd_exists "ionice"; then IONICE="ionice -c 3" fi; -# if we are running under cron +# if we are running under cron and there is no running MUA, exit if [ -n "$CRON" ]; then - # and there is no MUA open, exit - if ! kill -0 `pgrep -U $(id -u) -x $MUA` 2>/dev/null; then - exit 0; - fi; - # if there is not a working ssh master, exit. - if ! ssh -O check $IMAPHOST 2>&1|grep -q running; then + RUNNING_MUA=0 + for MUA in $MUAS; do + if kill -0 `pgrep -U $(id -u) -x $MUA` 2>/dev/null; then + RUNNING_MUA=1 + break; + fi; + done; + if [ "x$RUNNING_MUA" = "x0" ]; then exit 0; fi; fi; @@ -37,7 +49,6 @@ fi; if [ -e ~/.ssh/"ssh_agent_info_$HOSTNAME" ]; then . ~/.ssh/"ssh_agent_info_$HOSTNAME" > /dev/null; fi; -env; PID="$(pgrep -U $(id -u) offlineimap)"; if [ -n "$PID" ]; then @@ -55,7 +66,7 @@ if [ -z "$PID" ]; then perl -ne 'my ($account,$list) = /UID validity problem for folder ([\w-]+)\.([\w-]+)/; next unless defined $account and length $account; qx(/home/don/bin/deletemailbox -a Inbox $account.$list > /dev/null);'; - if which notmuch >/dev/null 2>&1; then + if cmd_exists "notmuch"; then nice -n 19 ${IONICE} notmuch new >/dev/null 2>&1; fi; fi;