Commit graph

37 commits

Author SHA1 Message Date
Daniel Kahn Gillmor
8ea4a99d74 cli/show: make --decrypt take a keyword.
We also expand tab completion for it, update the emacs bindings, and
update T350, T357, and T450 to match.

Make use of the bool-to-keyword backward-compatibility feature.
2017-12-29 16:45:46 -04:00
Jani Nikula
f3fc97c000 cli: add support for only printing the addresses in notmuch address
The notmuch address output is much more useful for scripts with just
the addresses printed. Support this using the --output=address option.
2017-12-14 21:28:50 -04:00
Daniel Kahn Gillmor
94dc81a91b cli/help,completion: added pointers to notmuch-properties(7) 2017-12-11 09:11:19 -04:00
Daniel Kahn Gillmor
fccebbaeef crypto: add --decrypt=nostash to avoid stashing session keys
Here's the configuration choice for people who want a cleartext index,
but don't want stashed session keys.

Interestingly, this "nostash" decryption policy is actually the same
policy that should be used by "notmuch show" and "notmuch reply",
since they never modify the index or database when they are invoked
with --decrypt.

We take advantage of this parallel to tune the behavior of those
programs so that we're not requesting session keys from GnuPG during
"show" and "reply" that we would then otherwise just throw away.
2017-12-08 08:08:47 -04:00
Daniel Kahn Gillmor
181d4091c4 cli/new, insert, reindex: update documentation for --decrypt=auto
we also include --decrypt=auto in the tab completion.
2017-12-08 08:08:46 -04:00
Daniel Kahn Gillmor
a1260896f6 cli/show: use decryption policy "auto" by default.
When showing a message, if the user doesn't specify --decrypt= at all,
but a stashed session key is known to notmuch, notmuch should just go
ahead and try to decrypt the message with the session key (without
bothering the user for access to their asymmetric secret key).

The user can disable this at the command line with --decrypt=false if
they really don't want to look at the e-mail that they've asked
notmuch to show them.

and of course, "notmuch show --decrypt" still works for accessing the
user's secret keys if necessary.
2017-12-08 08:08:46 -04:00
Daniel Kahn Gillmor
6802b333eb cli/reply: use decryption policy "auto" by default.
If the user doesn't specify --decrypt= at all, but a stashed session
key is known to notmuch, when replying to an encrypted message,
notmuch should just go ahead and decrypt.

The user can disable this at the command line with --decrypt=false,
though it's not clear why they would ever want to do that.
2017-12-08 08:08:46 -04:00
Daniel Kahn Gillmor
d3964e81ac indexing: Change from try_decrypt to decrypt
the command-line interface for indexing (reindex, new, insert) used
--try-decrypt; and the configuration records used index.try_decrypt.
But by comparison with "show" and "reply", there doesn't seem to be
any reason for the "try" prefix.

This changeset adjusts the command-line interface and the
configuration interface.

For the moment, i've left indexopts_{set,get}_try_decrypt alone.  The
subsequent changeset will address those.
2017-12-08 08:05:53 -04:00
Daniel Kahn Gillmor
8116891744 cli/reindex: add --try-decrypt=(true|false)
Enable override of the index.try_decrypt setting on a per-run basis
when invoking "notmuch reindex".  This allows the possibility of (for
example) an emacs keybinding that adds the cleartext of the currently
shown decrypted message to the index, making it searchable in the
future.

It also enables one-time indexing of all messages matching some query,
like so:

    notmuch reindex tag:encrypted and\
       not property:index.decryption=success and\
       from:alice@example.org

We also update the documentation and tab completion, and add a few
more tests.
2017-10-21 19:58:52 -03:00
Daniel Kahn Gillmor
c5356b9ed5 cli/insert: add --try-decrypt=(true|false)
Enable override of the index.try_decrypt setting on a per-message
basis when invoking "notmuch insert".

We also update the documentation and tab completion, and add more tests.
2017-10-21 19:58:43 -03:00
Daniel Kahn Gillmor
35456d4b0c cli/new: add --try-decrypt=(true|false)
Enable override of the index.try_decrypt setting during "notmuch new"
on a per-invocation basis.

We update the documentation and tab completion, and also add a test.
2017-10-21 19:58:32 -03:00
Daniel Kahn Gillmor
dea75b5dd6 completion: add bash completion for "notmuch reindex"
The main thing that notmuch reindex does is to use search terms, so we
can reuse a bunch of the existing completion framework.
2017-08-18 19:50:21 -03:00
Jani Nikula
97f3d55ad9 completion: complete notmuch emacs-mua
With subcommand handling for external commands we can easily complete
'notmuch emacs-mua' using the existing completion system.
2017-03-01 19:33:33 -04:00
Jani Nikula
c7df0cca9e completion: add bash completion for query: and property:
Add prefix completion for query and property, with value completion
for query. Apparently there's no way to get at the available
properties in the cli.
2017-02-26 07:57:42 -04:00
Jani Nikula
4d486cf94d completion: complete mimetype: search prefix
Use /etc/mime.types if available, parsed using a sed one-liner, and
fall back to a handful of common types otherwise.
2016-11-12 07:33:36 -04:00
Daniel Kahn Gillmor
6a833a6e83 Use https instead of http where possible
Many of the external links found in the notmuch source can be resolved
using https instead of http.  This changeset addresses as many as i
could find, without touching the e-mail corpus or expected outputs
found in tests.
2016-06-05 08:32:17 -03:00
Daniel Kahn Gillmor
8540c36a96 completion: update the location of the bash-completion project
Alioth currently redirects to github, so point there instead.
2016-06-05 08:26:16 -03:00
Jani Nikula
4cff5a9f98 completion: complete lastmod: search prefix 2015-10-21 21:30:15 -03:00
Jani Nikula
23180439cb completion: clean up top level completion
Add note about missing features.
2015-10-21 21:29:53 -03:00
Jani Nikula
cd4814ecb3 completion: complete shared options for each command
Add support for completing --help, --uuid=, and --version after the
subcommand. Do not support shared options at the top level yet due to
difficulties in handling options with arguments.

--uuid necessitates adding 'compopt -o nospace' also to notmuch new
completion, but that just brings it in line with the rest.
2015-10-21 21:29:20 -03:00
Jani Nikula
326824aee3 completion: complete notmuch count --lastmod 2015-10-21 21:22:02 -03:00
Jani Nikula
ddbda8f501 completion: handle notmuch address --deduplicate= option
Complete notmuch address --deduplicate=(no|mailbox|address).
2015-10-21 21:21:45 -03:00
Jani Nikula
76f8498df6 completion: complete addresses in from:/to: search terms
Use the new notmuch address command to do completion for addresses in
from: and to:. Use --output=sender for both for efficiency, even
though --output=recipients would be more accurate for to: prefix
completion.
2015-03-13 07:56:38 +01:00
Jani Nikula
647c0b0692 completion: complete notmuch dump --gzip option 2015-02-23 21:49:08 +01:00
Todd
694c7b9ba7 Update completions for Emacs and bash
This adds completions for both Emacs and bash. ZSH does not appear to
have completions for search terms.
2015-01-24 16:50:02 +01:00
Jani Nikula
2dfbb7598b completion: complete notmuch insert --folder to maildir folders only
The --folder option expects a folder relative from maildir root, so
complete like the folder: search term.
2015-01-02 16:51:00 +01:00
Jani Nikula
516a1b37b6 completion: complete notmuch insert --keep and --no-hooks options 2015-01-02 16:50:45 +01:00
Michal Sojka
a5a6859197 cli: address: Add --output=count
This output prints how many times was each address encountered during
search.
2014-11-05 23:25:05 +01:00
Michal Sojka
5c27136e64 cli: Introduce "notmuch address" command
This moves address-related functionality from search command to the
new address command. The implementation shares almost all code and
some command line options.

Options --offset and --limit were intentionally not included in the
address command, because they refer to messages numbers, which users
do not see in the output. This could confuse users because, for
example, they could see more addresses in the output that what was
specified with --limit. This functionality can be correctly
reimplemented for address subcommand later.

Also useless values of --exclude flag were not included in the address
command.

This was inspired by a patch from Jani Nikula.
2014-11-05 23:19:12 +01:00
Michal Sojka
3cc8ed5978 cli: search: Add --output={sender,recipients}
The new outputs allow printing senders, recipients or both of matching
messages. To print both, the user can use --output=sender and
--output=recipients simultaneously.

Currently, the same address can appear multiple times in the output.
The next commit will change this. For this reason, tests are
introduced there.

We use mailbox_t rather than InternetAddressMailbox because we will
need to extend it in a following commit.

This code is based on a patch from Jani Nikula.
2014-11-01 08:02:58 +01:00
Jani Nikula
523f06a0ad completion: fail silently if _init_completion is not found
The completion script depends on bash-completion 1.90 or later, with
_init_completion function. If that's not present, for some reason, the
completion currently fails with an ugly message, messing up user's
command line:

$ notmuch -bash: _init_completion: command not found

It's better to just not complete
2014-08-22 17:02:41 -07:00
Jani Nikula
b6238f7e51 completion: complete directory parameters to directories only
i.e. don't complete to files if only directories are acceptable.
2014-03-25 20:00:24 -03:00
Jani Nikula
d5822224da completion: add proper completion of folder: and path:
Complete folder: to maildir folders and path: to directories in mail
store.
2014-03-25 20:00:13 -03:00
Jani Nikula
b220aefdf9 completion: bash completion for notmuch new --quiet option
notmuch new now has --quiet option, complete it too.
2014-02-03 16:19:49 -04:00
Jani Nikula
db5189a3b9 completion: update bash completion
Update bash completion to cover new commands and options:

notmuch compact --quiet --backup=DIR
notmuch count --output=files --batch --input=FILE
notmuch insert --folder=DIR --create-folder
notmuch search --exclude=all --duplicate=N
notmuch show --include-html
notmuch tag --batch --input=FILE --remove-all
2013-11-11 07:45:04 -04:00
Jani Nikula
2302fd7925 completion: complete bash completion rewrite
Rewrite the bash completion script to actually do something
useful. Supported completions:

* All the notmuch commands, command line arguments, and values for
  keyword arguments.

* Tags after + and - in 'notmuch tag'.

* Config options in 'notmuch config', and some config option values.

* Search prefixes in all commands that use search terms.

* Tags after tag: prefix in search terms.

* User's email addresses after from: and to: in search terms.

This is all based on the bash-completion package [1], and will not
work without it.

[1] http://bash-completion.alioth.debian.org/
2013-03-28 15:07:54 -04:00
Carl Worth
e1a84ab173 Rename the "contrib" directory to "completion".
The original "contrib" name is lousy. Everything in notmuch has been
contributed, and we are integrating as much of it as possible, (rather
than making users grub through contrib looking for useful pieces to
install).

Meanwhile, the only things we have in contrib are command-line
completion scripts, so "completion" makes more sense as a name, (and
helps make "./configure" slightly less ambiguous).
2010-04-06 14:36:31 -07:00
Renamed from contrib/notmuch-completion.bash (Browse further)