| @@ -58,7 +58,7 @@ syncandnotify() { | |||||
| case "$1" in | case "$1" in | ||||
| imap) mbsync -q "$2" ;; | imap) mbsync -q "$2" ;; | ||||
| pop) mpop -q "$2" ;; | pop) mpop -q "$2" ;; | ||||
| esac | |||||
| esac || return 1 | |||||
| new=$(find\ | new=$(find\ | ||||
| "$HOME/.local/share/mail/$2/"[Ii][Nn][Bb][Oo][Xx]/new/ \ | "$HOME/.local/share/mail/$2/"[Ii][Nn][Bb][Oo][Xx]/new/ \ | ||||
| "$HOME/.local/share/mail/$2/"[Ii][Nn][Bb][Oo][Xx]/cur/ \ | "$HOME/.local/share/mail/$2/"[Ii][Nn][Bb][Oo][Xx]/cur/ \ | ||||
| @@ -100,15 +100,34 @@ else | |||||
| done || echo "error $arg"; done)" | done || echo "error $arg"; done)" | ||||
| fi | fi | ||||
| pids= # PIDs of backgrounded subshells | |||||
| count=0 # number of accounts in $tosync | |||||
| failed=0 # number of failed sync attempts | |||||
| for account in $tosync; do | for account in $tosync; do | ||||
| count=$((count+1)) | |||||
| case $account in | case $account in | ||||
| Channel*) syncandnotify imap "${account##* }" & ;; | |||||
| account*) syncandnotify pop "${account##* }" & ;; | |||||
| error*) echo "ERROR: Account ${account##* } not found." ;; | |||||
| Channel*) | |||||
| syncandnotify imap "${account##* }" & | |||||
| pids="$pids $!" | |||||
| ;; | |||||
| account*) | |||||
| syncandnotify pop "${account##* }" & | |||||
| pids="$pids $!" | |||||
| ;; | |||||
| error*) | |||||
| echo "ERROR: Account ${account##* } not found." | |||||
| failed=$((failed+1)) | |||||
| ;; | |||||
| esac | esac | ||||
| done | done | ||||
| wait | |||||
| IFS=' ' | |||||
| for pid in $pids; do | |||||
| wait $pid || failed=$((failed+1)) | |||||
| done | |||||
| # Abort if no account sync succeeded | |||||
| [ "$count" -gt "$failed" ] || exit 1 | |||||
| notmuch new --quiet | notmuch new --quiet | ||||