summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rwxr-xr-xbin/mailsync31
-rwxr-xr-xbin/mw2
2 files changed, 26 insertions, 7 deletions
diff --git a/bin/mailsync b/bin/mailsync
index 3a681f0..7bca2d0 100755
--- a/bin/mailsync
+++ b/bin/mailsync
@@ -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/ \
@@ -74,7 +74,7 @@ syncandnotify() {
[ -z "$MAILSYNC_MUTE" ] &&
for file in $new; do
# Extract and decode subject and sender from mail.
- subject=$(awk '/^Subject: / && ++n == 1,/^.*: / && ++i == 2' "$file" | head -n-1 |
+ subject=$(awk '/^Subject: / && ++n == 1,/^.*: / && ++i == 2' "$file" | sed '$d' |
perl -CS -MEncode -ne 'print decode("MIME-Header", $_)' |
sed 's/^Subject: //' | tr -d '\n\t')
from="$(sed -n "/^From:/ s|From: *|| p" "$file" |
@@ -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
diff --git a/bin/mw b/bin/mw
index 2101cdd..ab779f3 100755
--- a/bin/mw
+++ b/bin/mw
@@ -86,7 +86,7 @@ prepmpop() {
}
prepimapnotify() {
- mkdir -p "$imapnotify" ; envsubst < "$imapnotifytemp" >> "$imapnotify/$fulladdr.conf"
+ mkdir -p "$imapnotify" ; envsubst < "$imapnotifytemp" >> "$imapnotify/$fulladdr.yaml"
}
prepmutt() {