diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2017-06-12 13:33:20 +0100 |
---|---|---|
committer | Sean Whitton <spwhitton@spwhitton.name> | 2017-06-12 13:33:20 +0100 |
commit | a6b7a44f8649218c7b8b298490be70e717e87498 (patch) | |
tree | 561d0bf61258b4f2d01e92fe15162ca3e812f670 /.fmail/.notmuch/hooks/pre-new | |
parent | 800f5410216722a78702c246ae2daf35c64ec832 (diff) | |
download | dotfiles-a6b7a44f8649218c7b8b298490be70e717e87498.tar.gz |
move mail between folders before running notmuch new
This ensures that notmuch is aware of where every message is to be
found.
Diffstat (limited to '.fmail/.notmuch/hooks/pre-new')
-rwxr-xr-x | .fmail/.notmuch/hooks/pre-new | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/.fmail/.notmuch/hooks/pre-new b/.fmail/.notmuch/hooks/pre-new index 037e20de..6af993dd 100755 --- a/.fmail/.notmuch/hooks/pre-new +++ b/.fmail/.notmuch/hooks/pre-new @@ -2,4 +2,43 @@ . $HOME/.shenv +# The primary purpose of my pre-new and post-new scripts is to +# maintain the 'draft', 'spam', 'deleted' and 'unread' tags such that +# the only data in the notmuch database that cannot be reproduced from +# the Maildir is which threads have been killed, which is not +# important information. Then there is no need to sync the notmuch +# database between machines. Syncing the maildir with mbsync(1) is +# sufficient. + +# Note that another aspect of this setup is not using an 'inbox' tag. + +# In this script, we move mail according to tags that may have been +# added since the last 'notmuch new' run. Then we sync with my IMAP +# server. Then in the post-new script we add tags to new messages in +# particular folders + +# ensure all drafts are in the drafts folder +floating_drafts=$(notmuch search --output=files -- tag:draft and not folder:drafts) +if [ ! -z "$floating_drafts" ]; then + mdmv $floating_drafts $HOME/.fmail/drafts +fi + +# propagate the 'killed' tag to all messages in the killed message's thread +killed_threads=$(notmuch search --output=threads tag:killed) +if [ ! -z "$killed_threads" ]; then + notmuch tag -unread -- $killed_threads +fi + +# ensure all spam is in the spam folder to train FastMail's spam filter +floating_spam=$(notmuch search --output=files -- tag:spam and not folder:spam) +if [ ! -z "$floating_spam" ]; then + mdmv $floating_spam $HOME/.fmail/spam +fi + +# ensure all deleted messages are in the trash folder +floating_deleted=$(notmuch search --output=files -- tag:deleted and not folder:trash) +if [ ! -z "$floating_deleted" ]; then + mdmv $floating_deleted $HOME/.fmail/trash +fi + movemail |