diff options
author | Tom Willemse | 2022-07-01 23:19:21 -0700 |
---|---|---|
committer | Tom Willemse | 2022-09-22 23:52:01 -0700 |
commit | 02a48a7c8ab05ab9444c116d6b0b263e06a866f2 (patch) | |
tree | a4cd11329ae12f39ac1901843e062faefc6b2dbe /notmuch/usr | |
parent | 99baf86da71f75589feaa6957c7dac6bb9d0848c (diff) | |
download | new-dotfiles-02a48a7c8ab05ab9444c116d6b0b263e06a866f2.tar.gz new-dotfiles-02a48a7c8ab05ab9444c116d6b0b263e06a866f2.zip |
[notmuch] Automatically create tasks in org-mode for Fido emails
Diffstat (limited to 'notmuch/usr')
-rwxr-xr-x | notmuch/usr/bin/notmuch-collect-tasks | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/notmuch/usr/bin/notmuch-collect-tasks b/notmuch/usr/bin/notmuch-collect-tasks new file mode 100755 index 0000000..4eff658 --- /dev/null +++ b/notmuch/usr/bin/notmuch-collect-tasks @@ -0,0 +1,42 @@ +#!/usr/bin/env sh +# -*- mode: scheme; -*- +IFS=" " +exec scsh -e main -s "$0" "$@" +!# + +(define message-query + '(from:fidobill@fidomobile.ca + and "subject:Your Fido bill is ready")) + +(define processed-tag-name "processed") + +(define (message->task message) + (let ((query (caadr (member ':query message))) + (subject (cadr (member ':subject message))) + (date (format-date "~Y-~m-~d ~a ~H:~M" (date)))) + (format #f "* TODO ~a +:PROPERTIES: +:CREATED: [~a] +:END: + +[[notmuch:~a][~a]]" subject date query subject))) + +(define (print-task task) + (format #t "~a~%~%" task)) + +(define (main args) + (let ((output-file (cadr args)) + (messages (run/sexp + (notmuch search --format=sexp + ,@message-query + and not ,(format #f "tag:~a" processed-tag-name))))) + (with-current-output-port + (open-output-file output-file (file-options create append)) + (for-each (lambda (message) + (print-task (message->task message))) + messages)) + (run (notmuch tag ,(format #f "+~a" processed-tag-name) ,@message-query) + (> /dev/null)) + (format #t "Created ~a task~a~%" + (length messages) + (if (= 1 (length messages)) "" "s")))) |