aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/mbsync/.local
diff options
context:
space:
mode:
authorToby Vincent <tobyv@tobyvin.dev>2023-09-28 17:59:47 -0500
committerToby Vincent <tobyv@tobyvin.dev>2023-09-28 17:59:47 -0500
commita764a9ee86d47f54825a086db1cc2def8196c593 (patch)
tree969d6b6f2be72ff0d642f8fb342935cc45b444e9 /mbsync/.local
parent3b16b85d5e8a1c55449ecbde6a42eac3e6a8af0a (diff)
fix(mbsync): split notify service by maildir
Diffstat (limited to 'mbsync/.local')
-rwxr-xr-xmbsync/.local/bin/maildir-notify27
1 files changed, 10 insertions, 17 deletions
diff --git a/mbsync/.local/bin/maildir-notify b/mbsync/.local/bin/maildir-notify
index 065339f..61fc434 100755
--- a/mbsync/.local/bin/maildir-notify
+++ b/mbsync/.local/bin/maildir-notify
@@ -1,31 +1,24 @@
#!/bin/sh
-if [ $# = 0 ]; then
- for d in "$XDG_DATA_HOME"/mail/*; do
- set -- "$@" "${d}/INBOX"
- done
-fi
-
-for i; do
- set -- "$@" "${i}/new"
+for maildir; do
+ echo "Monitoring $maildir"
+ set -- "$@" "${maildir}/new"
shift
done
-echo "Watching $*"
-
inotifywait --monitor --event create --event moved_to "$@" |
while read -r dir _action file; do
- inbox="$(dirname "$dir")"
- category="$(dirname "$inbox" | xargs basename)"
+ maildir="$(dirname "$dir")"
+ category="$(dirname "$maildir" | xargs basename)"
from="$(grep -m1 -oP '(?<=^From: ).*' "${dir}${file}")"
subject="$(grep -m1 -oP '(?<=^Subject: ).*' "${dir}${file}")"
- if [ ! -e "$inbox/new/$file" ]; then
- if [ -e "$inbox/cur/$file" ]; then
- from="$(grep -m1 -oP '(?<=^From: ).*' "$inbox/cur/$file")"
- subject="$(grep -m1 -oP '(?<=^Subject: ).*' "$inbox/cur/$file")"
+ if [ ! -e "$maildir/new/$file" ]; then
+ if [ -e "$maildir/cur/$file" ]; then
+ from="$(grep -m1 -oP '(?<=^From: ).*' "$maildir/cur/$file")"
+ subject="$(grep -m1 -oP '(?<=^Subject: ).*' "$maildir/cur/$file")"
else
- echo "Failed to read message. File: $file"
+ echo "Failed to read message. File: $file" 1>&2
continue
fi
fi