diff options
| author | Jani Nikula <jani@nikula.org> | 2015-08-15 12:05:14 +0300 |
|---|---|---|
| committer | David Bremner <david@tethera.net> | 2015-09-29 08:25:25 -0300 |
| commit | 17fcf24d8b2dd6afcda2e3eaf40f9b7b51d8f30d (patch) | |
| tree | 2101776169381345a46663af32cb177ad251add8 | |
| parent | cb4e73b73664147404fbb835d1749b2c9326da24 (diff) | |
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.
| -rw-r--r-- | doc/man1/notmuch-emacs-mua.rst | 9 | ||||
| -rwxr-xr-x | 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 |
