# Don't check mail if ~/.nocheck exists and we're not running
# interactively.
-if [[ -z "$CRON" && -e ~/.nocheck ]]; then
+if [ -z "$CRON" ] && [ -e ~/.nocheck ]; then
exit 0;
fi;
# 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
+ sleep 5
kill -0 "$PID" >/dev/null 2>&1 && kill -9 "$PID" >/dev/null 2>&1;
+ PID="$(pgrep -U $(id -u) offlineimap)";
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-]+)/;
+ if [ -z "$PID" ]; then
+ 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;
qx(/home/don/bin/deletemailbox -a $account $list > /dev/null);'; then
# Clean the lists up too
- 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 -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;
+ 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 -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;
fi;
fi;