Sfoglia il codice sorgente

Merge pull request #1028 from jlucas8/error-handling

Handle sync errors (set exit code accordingly)
pull/1035/head
Luke Smith 2 mesi fa
committed by GitHub
parent
commit
1b98bbc3be
Non sono state trovate chiavi note per questa firma nel database ID Chiave GPG: B5690EEEBB952194
1 ha cambiato i file con 24 aggiunte e 5 eliminazioni
  1. +24
    -5
      bin/mailsync

+ 24
- 5
bin/mailsync Vedi File

@@ -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




Caricamento…
Annulla
Salva