We cache the result so that we can call the function many places without worrying about the cost. --- emacs/notmuch-lib.el | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el index 2be409b..dcdfbdc 100644 --- a/emacs/notmuch-lib.el +++ b/emacs/notmuch-lib.el @@ -168,6 +168,17 @@ Otherwise the output will be returned" (notmuch-check-exit-status status (cons notmuch-command args) output) output))) +(defvar notmuch--cli-sane-p nil + "Cache whether the CLI seems to be configured sanely.") + +(defun notmuch-cli-sane-p () + "Return t if the cli seems to be configured sanely." + (unless notmuch--cli-sane-p + (let ((status (call-process notmuch-command nil nil nil + "config" "get" "user.primary_email"))) + (setq notmuch--cli-setup-p (= status 0)))) + notmuch--cli-sane-p) + (defun notmuch-version () "Return a string with the notmuch version number." (let ((long-string -- 1.8.5.2