emacs: support "notmuch new" as a notmuch-poll-script

Support nil value for notmuch-poll-script to run "notmuch new" instead of
an external script, and make this the new default. "notmuch new" is run
using the configured notmuch-command.

This allows taking better advantage of the "notmuch new" hooks from emacs
without intermediate scripts.

Signed-off-by: Jani Nikula <jani@nikula.org>
This commit is contained in:
Jani Nikula 2011-12-12 22:50:04 +02:00 committed by David Bremner
parent a06f7b6737
commit ed56fee6e5

View file

@ -965,28 +965,43 @@ same relative position within the new buffer."
(notmuch-search query oldest-first target-thread target-line continuation)
(goto-char (point-min))))
(defcustom notmuch-poll-script ""
(defcustom notmuch-poll-script nil
"An external script to incorporate new mail into the notmuch database.
If this variable is non empty, then it should name a script to be
invoked by `notmuch-search-poll-and-refresh-view' and
This variable controls the action invoked by
`notmuch-search-poll-and-refresh-view' and
`notmuch-hello-poll-and-update' (each have a default keybinding
of 'G'). The script could do any of the following depending on
of 'G') to incorporate new mail into the notmuch database.
If set to nil (the default), new mail is processed by invoking
\"notmuch new\". Otherwise, this should be set to a string that
gives the name of an external script that processes new mail. If
set to the empty string, no command will be run.
The external script could do any of the following depending on
the user's needs:
1. Invoke a program to transfer mail to the local mail store
2. Invoke \"notmuch new\" to incorporate the new mail
3. Invoke one or more \"notmuch tag\" commands to classify the mail"
:type 'string
3. Invoke one or more \"notmuch tag\" commands to classify the mail
Note that the recommended way of achieving the same is using
\"notmuch new\" hooks."
:type '(choice (const :tag "notmuch new" nil)
(const :tag "Disabled" "")
(string :tag "Custom script"))
:group 'notmuch)
(defun notmuch-poll ()
"Run external script to import mail.
"Run \"notmuch new\" or an external script to import mail.
Invokes `notmuch-poll-script' if it is not set to an empty string."
Invokes `notmuch-poll-script', \"notmuch new\", or does nothing
depending on the value of `notmuch-poll-script'."
(interactive)
(if (not (string= notmuch-poll-script ""))
(call-process notmuch-poll-script nil nil)))
(if (stringp notmuch-poll-script)
(if (not (string= notmuch-poll-script ""))
(call-process notmuch-poll-script nil nil))
(call-process notmuch-command nil nil nil "new")))
(defun notmuch-search-poll-and-refresh-view ()
"Invoke `notmuch-poll' to import mail, then refresh the current view."