emacs: Add notmuch-crypto-gpg-program and use it

Allow the user to specify the gpg program to use when retrieving keys,
etc., defaulting to the value of `epg-gpg-program'.
This commit is contained in:
David Edmondson 2019-09-11 21:32:59 -04:00 committed by David Bremner
parent 50f0cbcc4d
commit d137afface

View file

@ -48,6 +48,11 @@ mode."
:type 'boolean :type 'boolean
:group 'notmuch-crypto) :group 'notmuch-crypto)
(defcustom notmuch-crypto-gpg-program epg-gpg-program
"The gpg executable."
:type 'string
:group 'notmuch-crypto)
(defface notmuch-crypto-part-header (defface notmuch-crypto-part-header
'((((class color) '((((class color)
(background dark)) (background dark))
@ -151,7 +156,7 @@ by user FROM."
(with-selected-window window (with-selected-window window
(with-current-buffer buffer (with-current-buffer buffer
(goto-char (point-max)) (goto-char (point-max))
(call-process epg-gpg-program nil t t "--batch" "--no-tty" "--list-keys" fingerprint)) (call-process notmuch-crypto-gpg-program nil t t "--batch" "--no-tty" "--list-keys" fingerprint))
(recenter -1)))) (recenter -1))))
(declare-function notmuch-show-refresh-view "notmuch-show" (&optional reset-state)) (declare-function notmuch-show-refresh-view "notmuch-show" (&optional reset-state))
@ -208,7 +213,7 @@ corresponding key when the status button is pressed."
button (format "Retrieving key %s asynchronously..." keyid)) button (format "Retrieving key %s asynchronously..." keyid))
(let ((p (make-process :name "notmuch GPG key retrieval" (let ((p (make-process :name "notmuch GPG key retrieval"
:buffer buffer :buffer buffer
:command (list epg-gpg-program "--recv-keys" keyid) :command (list notmuch-crypto-gpg-program "--recv-keys" keyid)
:connection-type 'pipe :connection-type 'pipe
:sentinel #'notmuch-crypto--async-key-sentinel :sentinel #'notmuch-crypto--async-key-sentinel
;; Create the process stopped so that ;; Create the process stopped so that
@ -220,13 +225,14 @@ corresponding key when the status button is pressed."
(process-put p :notmuch-show-point (point)) (process-put p :notmuch-show-point (point))
(message "Getting the GPG key %s asynchronously..." keyid) (message "Getting the GPG key %s asynchronously..." keyid)
(continue-process p))) (continue-process p)))
(let ((window (display-buffer buffer))) (let ((window (display-buffer buffer)))
(with-selected-window window (with-selected-window window
(with-current-buffer buffer (with-current-buffer buffer
(goto-char (point-max)) (goto-char (point-max))
(call-process epg-gpg-program nil t t "--recv-keys" keyid) (call-process notmuch-crypto-gpg-program nil t t "--recv-keys" keyid)
(insert "\n") (insert "\n")
(call-process epg-gpg-program nil t t "--list-keys" keyid)) (call-process notmuch-crypto-gpg-program nil t t "--list-keys" keyid))
(recenter -1)) (recenter -1))
(notmuch-show-refresh-view))))) (notmuch-show-refresh-view)))))