]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch-emacs-mua
emacs: Add new option notmuch-search-hide-excluded
[notmuch] / notmuch-emacs-mua
diff --git a/notmuch-emacs-mua b/notmuch-emacs-mua
deleted file mode 100755 (executable)
index b51d8d0..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-#!/usr/bin/env bash
-#
-# notmuch-emacs-mua - start composing a mail on the command line
-#
-# Copyright © 2014 Jani Nikula
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see http://www.gnu.org/licenses/ .
-#
-# Authors: Jani Nikula <jani@nikula.org>
-#
-
-set -eu
-
-# escape: "expand" '\' as '\\' and '"' as '\"'
-# calling convention: escape -v var "$arg" (like in bash printf).
-escape ()
-{
-    local __escape_arg__=${3//\\/\\\\}
-    printf -v $2 '%s' "${__escape_arg__//\"/\\\"}"
-}
-
-EMACS=${EMACS-emacs}
-EMACSCLIENT=${EMACSCLIENT-emacsclient}
-
-PRINT_ONLY=
-NO_WINDOW=
-USE_EMACSCLIENT=
-AUTO_DAEMON=
-CREATE_FRAME=
-
-# The crux of it all: construct an elisp progn and eval it.
-ELISP="(prog1 'done (require 'notmuch) (notmuch-mua-new-mail)"
-
-# Short options compatible with mutt(1).
-while getopts :s:c:b:i:h opt; do
-    # Handle errors and long options.
-    case "${opt}" in
-       :)
-           echo "$0: short option -${OPTARG} requires an argument." >&2
-           exit 1
-           ;;
-       \?)
-           opt=$1
-           if [ "${OPTARG}" != "-" ]; then
-               echo "$0: unknown short option -${OPTARG}." >&2
-               exit 1
-           fi
-
-           case "${opt}" in
-               # Long options with arguments.
-               --subject=*|--to=*|--cc=*|--bcc=*|--body=*)
-                   OPTARG=${opt#--*=}
-                   opt=${opt%%=*}
-                   ;;
-               # Long options without arguments.
-               --help|--print|--no-window-system|--client|--auto-daemon|--create-frame)
-                   ;;
-               *)
-                   echo "$0: unknown long option ${opt}, or argument mismatch." >&2
-                   exit 1
-                   ;;
-           esac
-           # getopts does not do this for what it considers errors.
-           OPTIND=$((OPTIND + 1))
-           ;;
-    esac
-
-    escape -v OPTARG "${OPTARG-none}"
-
-    case "${opt}" in
-       --help|h)
-           exec man notmuch-emacs-mua
-           ;;
-       --subject|s)
-           ELISP="${ELISP} (message-goto-subject) (insert \"${OPTARG}\")"
-           ;;
-       --to)
-           ELISP="${ELISP} (message-goto-to) (insert \"${OPTARG}, \")"
-           ;;
-       --cc|c)
-           ELISP="${ELISP} (message-goto-cc) (insert \"${OPTARG}, \")"
-           ;;
-       --bcc|b)
-           ELISP="${ELISP} (message-goto-bcc) (insert \"${OPTARG}, \")"
-           ;;
-       --body|i)
-           ELISP="${ELISP} (message-goto-body) (cd \"${PWD}\") (insert-file \"${OPTARG}\")"
-           ;;
-       --print)
-           PRINT_ONLY=1
-           ;;
-       --no-window-system)
-           NO_WINDOW="-nw"
-           ;;
-       --client)
-           USE_EMACSCLIENT="yes"
-           ;;
-       --auto-daemon)
-           AUTO_DAEMON="--alternate-editor="
-           ;;
-       --create-frame)
-           CREATE_FRAME="-c"
-           ;;
-       *)
-           # We should never end up here.
-           echo "$0: internal error (option ${opt})." >&2
-           exit 1
-           ;;
-    esac
-
-    shift $((OPTIND - 1))
-    OPTIND=1
-done
-
-# Positional parameters.
-for arg; do
-    escape -v arg "${arg}"
-    ELISP="${ELISP} (message-goto-to) (insert \"${arg}, \")"
-done
-
-# Kill the terminal/frame if we're creating one.
-if [ -z "$USE_EMACSCLIENT" -o -n "$CREATE_FRAME" -o -n "$NO_WINDOW" ]; then
-    ELISP="${ELISP} (setq message-exit-actions (list #'save-buffers-kill-terminal))"
-fi
-
-# End progn.
-ELISP="${ELISP})"
-
-if [ -n "$PRINT_ONLY" ]; then
-    echo ${ELISP}
-    exit 0
-fi
-
-if [ -n "$USE_EMACSCLIENT" ]; then
-    # Evaluate the progn.
-    exec ${EMACSCLIENT} ${NO_WINDOW} ${CREATE_FRAME} ${AUTO_DAEMON} --eval "${ELISP}"
-else
-    exec ${EMACS} ${NO_WINDOW} --eval "${ELISP}"
-fi