From 17fcf24d8b2dd6afcda2e3eaf40f9b7b51d8f30d Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Sat, 15 Aug 2015 12:05:14 +0300 Subject: [PATCH] notmuch-emacs-mua: add --auto-daemon option to start Emacs daemon as needed Automatically starting Emacs in daemon mode if the Emacs server is not running is a matter of preference better not hard coded in notmuch-emacs-mua. Add an option to control the behaviour. --- doc/man1/notmuch-emacs-mua.rst | 9 +++++++-- notmuch-emacs-mua | 8 ++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/doc/man1/notmuch-emacs-mua.rst b/doc/man1/notmuch-emacs-mua.rst index 7c2f5c24..89a2fead 100644 --- a/doc/man1/notmuch-emacs-mua.rst +++ b/doc/man1/notmuch-emacs-mua.rst @@ -37,8 +37,13 @@ Supported options for **notmuch-emacs-mua** include Even if a window system is available, use the current terminal. ``--client`` - Use **emacsclient**, rather than **emacs**. This will start - an Emacs daemon process if necessary. + Use **emacsclient**, rather than **emacs**. For + **emacsclient** to work, you need an already running Emacs + with a server, or use ``--auto-daemon``. + + ``--auto-daemon`` + Automatically start Emacs in daemon mode, if the Emacs server + is not running. Applicable with ``--client``. ``--print`` Output the resulting elisp to stdout instead of evaluating it. diff --git a/notmuch-emacs-mua b/notmuch-emacs-mua index 1f088c42..ac03a4a6 100755 --- a/notmuch-emacs-mua +++ b/notmuch-emacs-mua @@ -36,6 +36,7 @@ EMACSCLIENT=${EMACSCLIENT-emacsclient} PRINT_ONLY= NO_WINDOW= USE_EMACSCLIENT= +AUTO_DAEMON= CREATE_FRAME="-c" # The crux of it all: construct an elisp progn and eval it. @@ -64,7 +65,7 @@ while getopts :s:c:b:i:h opt; do opt=${opt%%=*} ;; # Long options without arguments. - --help|--print|--no-window-system|--client) + --help|--print|--no-window-system|--client|--auto-daemon) ;; *) echo "$0: unknown long option ${opt}, or argument mismatch." >&2 @@ -107,6 +108,9 @@ while getopts :s:c:b:i:h opt; do --client) USE_EMACSCLIENT="yes" ;; + --auto-daemon) + AUTO_DAEMON="--alternate-editor=" + ;; *) # We should never end up here. echo "$0: internal error (option ${opt})." >&2 @@ -134,7 +138,7 @@ fi if [ -n "$USE_EMACSCLIENT" ]; then # Evaluate the progn. - exec ${EMACSCLIENT} ${NO_WINDOW} ${CREATE_FRAME} -a '' --eval "${ELISP}" + exec ${EMACSCLIENT} ${NO_WINDOW} ${CREATE_FRAME} ${AUTO_DAEMON} --eval "${ELISP}" else exec ${EMACS} ${NO_WINDOW} --eval "${ELISP}" fi -- 2.43.0