Ver código fonte

handle sync errors

- syncandnotify() aborts early if mbsync or mpop fails
- mailsync aborts early (exit code 1, before notmuch) if all syncs fail
pull/1028/head
João Lucas 6 meses atrás
pai
commit
3dc1ee678b
Nenhuma chave conhecida encontrada para esta assinatura no banco de dados ID da chave GPG: EAF070B910A6D6C1
1 arquivos alterados com 24 adições e 5 exclusões
  1. +24
    -5
      bin/mailsync

+ 24
- 5
bin/mailsync Ver arquivo

@@ -58,7 +58,7 @@ syncandnotify() {
case "$1" in
imap) mbsync -q "$2" ;;
pop) mpop -q "$2" ;;
esac
esac || return 1
new=$(find\
"$HOME/.local/share/mail/$2/"[Ii][Nn][Bb][Oo][Xx]/new/ \
"$HOME/.local/share/mail/$2/"[Ii][Nn][Bb][Oo][Xx]/cur/ \
@@ -100,15 +100,34 @@ else
done || echo "error $arg"; done)"
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
count=$((count+1))
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
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



Carregando…
Cancelar
Salvar