diff options
author | Toby Vincent <tobyv@tobyvin.dev> | 2023-09-28 17:59:47 -0500 |
---|---|---|
committer | Toby Vincent <tobyv@tobyvin.dev> | 2023-09-28 17:59:47 -0500 |
commit | a764a9ee86d47f54825a086db1cc2def8196c593 (patch) | |
tree | 969d6b6f2be72ff0d642f8fb342935cc45b444e9 /mbsync/.local | |
parent | 3b16b85d5e8a1c55449ecbde6a42eac3e6a8af0a (diff) |
fix(mbsync): split notify service by maildir
Diffstat (limited to 'mbsync/.local')
-rwxr-xr-x | mbsync/.local/bin/maildir-notify | 27 |
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 |