#!/bin/bash # $Header: /usr/local/home/agriffis/cvsroot/dotcvs/do_offlineimap,v 1.11 2004/10/18 22:47:04 agriffis Exp $ # Load keychain variables and check for id_dsa . $HOME/.keychain/$HOSTNAME-sh 2>/dev/null ssh-add -l 2>/dev/null | grep -q id_dsa || exit 0 # Test to see if it's worth running offlineimap runme=false [[ $# == 0 ]] && runme=true tty -s && runme=true if [[ $runme == false && $* == *Recv* || $* != *Send* ]]; then # Check for a running mutt killall -0 mutt 2>/dev/null && runme=true fi if [[ $runme == false && ( $* == *HomeSend* || $* != *Recv* ) ]]; then # Check for outgoing griffis1 mail that doesn't look like it's # been touched by offlineimap /bin/ls $HOME/mail/griffis1/Outbox/new | grep -qv ',U=.*,FMD5=.*' \ && runme=true fi if [[ $runme == false && ( $* == *GentooSend* || $* != *Recv* ) ]]; then # Check for outgoing griffis1 mail that doesn't look like it's # been touched by offlineimap /bin/ls $HOME/mail/gentoo/Outbox/new | grep -qv ',U=.*,FMD5=.*' \ && runme=true fi if [[ $runme == false && ( $* == *WorkSend* || $* != *Recv* ) ]]; then # Check for outgoing hp mail that doesn't look like it's been # touched by offlineimap /bin/ls $HOME/mail/hp/Outbox/new | grep -qv ',U=.*,FMD5=.*' \ && runme=true fi $runme || exit 0 # Run offlineimap; make sure to check $HOME/bin for a debugging wrapper PATH="$HOME/bin:$PATH" if tty -s; then offlineimap -o -u Noninteractive.Basic "$@" 2>&1 \ | grep -Ev '^(INFO|Now debugging)' else output=$( offlineimap -o -u Noninteractive.Quiet "$@" 2>&1 \ | grep -Ev '^(INFO|Now debugging)' ) if [[ -z $output ]]; then exit 0 elif [[ $output == *"Another OfflineIMAP is running"* ]]; then exit 0 fi echo "$output" # Offlineimap was successful in the background... update the # header cache mailboxes=() [[ $* == *HomeRecv* || ( $* != *WorkRecv* && $* != *GentooRecv* ) ]] && mailboxes[0]=griffis1 [[ $* == *WorkRecv* || ( $* != *HomeRecv* && $* != *GentooRecv* ) ]] && mailboxes[1]=hp [[ $* == *GentooRecv* || ( $* != *WorkRecv* && $* != *HomeRecv* ) ]] && mailboxes[2]=gentoo if [[ -n ${mailboxes[*]} ]]; then cd ~/mail find "${mailboxes[@]}" -type d -maxdepth 1 -mindepth 1 | \ while read f; do screen -D -m -S "update_mutt_header_cache_${f//\//_}" mutt -R -f +${f} -e 'exec quit' done fi fi