mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-27 13:17:56 +01:00
cli/reply: make --decrypt take a keyword
This brings the --decrypt argument to "notmuch reply" into line with the other --decrypt arguments (in "show", "new", "insert", and "reindex"). This patch is really just about bringing consistency to the user interface. We also use the recommended form in the emacs MUA when replying, and update test T350 to match.
This commit is contained in:
parent
8ea4a99d74
commit
af8255fb71
5 changed files with 27 additions and 20 deletions
|
@ -351,7 +351,7 @@ _notmuch_reply()
|
||||||
return
|
return
|
||||||
;;
|
;;
|
||||||
--decrypt)
|
--decrypt)
|
||||||
COMPREPLY=( $( compgen -W "true false" -- "${cur}" ) )
|
COMPREPLY=( $( compgen -W "true auto false" -- "${cur}" ) )
|
||||||
return
|
return
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -72,20 +72,26 @@ Supported options for **reply** include
|
||||||
in this order, and copy values from the first that contains
|
in this order, and copy values from the first that contains
|
||||||
something other than only the user's addresses.
|
something other than only the user's addresses.
|
||||||
|
|
||||||
``--decrypt``
|
``--decrypt=(false|auto|true)``
|
||||||
Decrypt any MIME encrypted parts found in the selected content
|
|
||||||
(ie. "multipart/encrypted" parts). Status of the decryption will
|
|
||||||
be reported (currently only supported with --format=json and
|
|
||||||
--format=sexp) and on successful decryption the
|
|
||||||
multipart/encrypted part will be replaced by the decrypted
|
|
||||||
content.
|
|
||||||
|
|
||||||
If a session key is already known for the message, then it
|
If ``true``, decrypt any MIME encrypted parts found in the
|
||||||
will be decrypted automatically unless the user explicitly
|
selected content (i.e., "multipart/encrypted" parts). Status
|
||||||
sets ``--decrypt=false``.
|
of the decryption will be reported (currently only supported
|
||||||
|
with --format=json and --format=sexp), and on successful
|
||||||
|
decryption the multipart/encrypted part will be replaced by
|
||||||
|
the decrypted content.
|
||||||
|
|
||||||
Decryption expects a functioning **gpg-agent(1)** to provide any
|
If ``auto``, and a session key is already known for the
|
||||||
needed credentials. Without one, the decryption will likely fail.
|
message, then it will be decrypted, but notmuch will not try
|
||||||
|
to access the user's secret keys.
|
||||||
|
|
||||||
|
Use ``false`` to avoid even automatic decryption.
|
||||||
|
|
||||||
|
Non-automatic decryption expects a functioning
|
||||||
|
**gpg-agent(1)** to provide any needed credentials. Without
|
||||||
|
one, the decryption will likely fail.
|
||||||
|
|
||||||
|
Default: ``auto``
|
||||||
|
|
||||||
See **notmuch-search-terms(7)** for details of the supported syntax for
|
See **notmuch-search-terms(7)** for details of the supported syntax for
|
||||||
<search-terms>.
|
<search-terms>.
|
||||||
|
|
|
@ -181,7 +181,7 @@ mutiple parts get a header."
|
||||||
reply
|
reply
|
||||||
original)
|
original)
|
||||||
(when process-crypto
|
(when process-crypto
|
||||||
(setq args (append args '("--decrypt"))))
|
(setq args (append args '("--decrypt=true"))))
|
||||||
|
|
||||||
(if reply-all
|
(if reply-all
|
||||||
(setq args (append args '("--reply-to=all")))
|
(setq args (append args '("--reply-to=all")))
|
||||||
|
|
|
@ -704,8 +704,6 @@ notmuch_reply_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
};
|
};
|
||||||
int format = FORMAT_DEFAULT;
|
int format = FORMAT_DEFAULT;
|
||||||
int reply_all = true;
|
int reply_all = true;
|
||||||
bool decrypt = false;
|
|
||||||
bool decrypt_set = false;
|
|
||||||
|
|
||||||
notmuch_opt_desc_t options[] = {
|
notmuch_opt_desc_t options[] = {
|
||||||
{ .opt_keyword = &format, .name = "format", .keywords =
|
{ .opt_keyword = &format, .name = "format", .keywords =
|
||||||
|
@ -719,7 +717,12 @@ notmuch_reply_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
(notmuch_keyword_t []){ { "all", true },
|
(notmuch_keyword_t []){ { "all", true },
|
||||||
{ "sender", false },
|
{ "sender", false },
|
||||||
{ 0, 0 } } },
|
{ 0, 0 } } },
|
||||||
{ .opt_bool = &decrypt, .name = "decrypt", .present = &decrypt_set },
|
{ .opt_keyword = (int*)(¶ms.crypto.decrypt), .name = "decrypt",
|
||||||
|
.keyword_no_arg_value = "true", .keywords =
|
||||||
|
(notmuch_keyword_t []){ { "false", NOTMUCH_DECRYPT_FALSE },
|
||||||
|
{ "auto", NOTMUCH_DECRYPT_AUTO },
|
||||||
|
{ "true", NOTMUCH_DECRYPT_NOSTASH },
|
||||||
|
{ 0, 0 } } },
|
||||||
{ .opt_inherit = notmuch_shared_options },
|
{ .opt_inherit = notmuch_shared_options },
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
@ -729,8 +732,6 @@ notmuch_reply_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
|
|
||||||
notmuch_process_shared_options (argv[0]);
|
notmuch_process_shared_options (argv[0]);
|
||||||
if (decrypt_set)
|
|
||||||
params.crypto.decrypt = decrypt ? NOTMUCH_DECRYPT_NOSTASH : NOTMUCH_DECRYPT_FALSE;
|
|
||||||
|
|
||||||
notmuch_exit_if_unsupported_format ();
|
notmuch_exit_if_unsupported_format ();
|
||||||
|
|
||||||
|
|
|
@ -384,7 +384,7 @@ test_expect_equal_json \
|
||||||
"$expected"
|
"$expected"
|
||||||
|
|
||||||
test_begin_subtest "reply to encrypted message"
|
test_begin_subtest "reply to encrypted message"
|
||||||
output=$(notmuch reply --decrypt subject:"test encrypted message 002" \
|
output=$(notmuch reply --decrypt=true subject:"test encrypted message 002" \
|
||||||
| notmuch_drop_mail_headers In-Reply-To References)
|
| notmuch_drop_mail_headers In-Reply-To References)
|
||||||
expected='From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
expected='From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||||
Subject: Re: test encrypted message 002
|
Subject: Re: test encrypted message 002
|
||||||
|
|
Loading…
Reference in a new issue