[notmuch] Automatically create tasks in org-mode for Fido emails
This commit is contained in:
parent
99baf86da7
commit
02a48a7c8a
2 changed files with 50 additions and 0 deletions
8
notmuch/.config/notmuch/default/hooks/post-new
Executable file
8
notmuch/.config/notmuch/default/hooks/post-new
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
# -*- mode: scheme; -*-
|
||||||
|
IFS=" "
|
||||||
|
exec scsh -e main -s "$0" "$@"
|
||||||
|
!#
|
||||||
|
|
||||||
|
(define (main . args)
|
||||||
|
(run (notmuch-collect-tasks ,(format #f "~a/documents/gtd/inbox.org" (getenv "HOME")))))
|
42
notmuch/usr/bin/notmuch-collect-tasks
Executable file
42
notmuch/usr/bin/notmuch-collect-tasks
Executable file
|
@ -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"))))
|
Loading…
Reference in a new issue