unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
To: Notmuch Mail <notmuch@notmuchmail.org>
Subject: [PATCH v6 10/14] cli: set up shared command-line arguments for indexing
Date: Tue, 17 Oct 2017 15:10:04 -0400	[thread overview]
Message-ID: <20171017191008.8742-11-dkg@fifthhorseman.net> (raw)
In-Reply-To: <20171017191008.8742-1-dkg@fifthhorseman.net>

We have an indexopts structure for manipulating indexing in different
ways, but we also have three command-line invocations that can trigger
indexing: new, insert, and reindex.

This changeset prepares a common parser that these subcommands can
share.

Note: if the deprecated crypto.gpg_path configuration option is set to
anything other than "gpg", we ignore it (and print a warning on
stderr, if built against gmime < 3.0).

At the moment, it's just --try-decrypt, but others will likely follow.
---
 notmuch-client.h | 12 ++++++++++++
 notmuch.c        | 39 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 51 insertions(+)

diff --git a/notmuch-client.h b/notmuch-client.h
index d17cdf01..27852360 100644
--- a/notmuch-client.h
+++ b/notmuch-client.h
@@ -495,4 +495,16 @@ void notmuch_exit_if_unmatched_db_uuid (notmuch_database_t *notmuch);
 void notmuch_process_shared_options (const char* subcommand_name);
 int notmuch_minimal_options (const char* subcommand_name,
 			     int argc, char **argv);
+
+
+struct _notmuch_client_index_options {
+    bool try_decrypt;
+    bool try_decrypt_set;
+    notmuch_indexopts_t * opts;
+};
+extern struct _notmuch_client_index_options index_options;
+extern const notmuch_opt_desc_t  notmuch_index_options [];
+notmuch_status_t
+notmuch_process_index_options (notmuch_database_t *notmuch, notmuch_config_t *config);
+
 #endif
diff --git a/notmuch.c b/notmuch.c
index 02148f2e..f83b5a6f 100644
--- a/notmuch.c
+++ b/notmuch.c
@@ -96,6 +96,45 @@ int notmuch_minimal_options (const char *subcommand_name,
     return opt_index;
 }
 
+
+struct _notmuch_client_index_options index_options = { };
+const notmuch_opt_desc_t  notmuch_index_options [] = {
+    { .opt_bool = &index_options.try_decrypt,
+      .present = &index_options.try_decrypt_set,
+      .name = "try-decrypt" },
+    { }
+};
+
+
+notmuch_status_t
+notmuch_process_index_options (notmuch_database_t *notmuch, g_mime_3_unused(notmuch_config_t *config))
+{
+    if (index_options.opts == NULL)
+	index_options.opts = notmuch_database_get_default_indexopts (notmuch);
+    if (index_options.try_decrypt_set) {
+	notmuch_status_t status;
+	if (index_options.opts == NULL)
+	    return NOTMUCH_STATUS_OUT_OF_MEMORY;
+	status = notmuch_indexopts_set_try_decrypt (index_options.opts, index_options.try_decrypt);
+	if (status != NOTMUCH_STATUS_SUCCESS) {
+	    fprintf (stderr, "Error: Failed to set try_decrypt to %s. (%s)\n",
+		     index_options.try_decrypt ? "True" : "False", notmuch_status_to_string (status));
+	    notmuch_indexopts_destroy (index_options.opts);
+	    return status;
+	}
+    }
+#if (GMIME_MAJOR_VERSION < 3)
+    if (index_options.opts && notmuch_indexopts_get_try_decrypt (index_options.opts)) {
+	const char* gpg_path = notmuch_config_get_crypto_gpg_path (config);
+	if (gpg_path && strcmp(gpg_path, "gpg"))
+	    fprintf (stderr, "Warning: deprecated crypto.gpg_path is set to '%s'\n"
+		     "\tbut ignoring (use $PATH instead)\n", gpg_path);
+    }
+#endif
+    return NOTMUCH_STATUS_SUCCESS;
+}
+
+
 static command_t commands[] = {
     { NULL, notmuch_command, NOTMUCH_CONFIG_OPEN | NOTMUCH_CONFIG_CREATE,
       "Notmuch main command." },
-- 
2.14.2

  parent reply	other threads:[~2017-10-17 19:10 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-17 19:09 cleartext indexing, revision 6 Daniel Kahn Gillmor
2017-10-17 19:09 ` [PATCH v6 01/14] crypto: move into libnotmuch_util Daniel Kahn Gillmor
2017-10-17 19:09 ` [PATCH v6 02/14] crypto: make shared crypto code behave library-like Daniel Kahn Gillmor
2017-10-17 19:09 ` [PATCH v6 03/14] index: implement notmuch_indexopts_t with try_decrypt Daniel Kahn Gillmor
2017-10-19 11:44   ` David Bremner
2017-10-17 19:09 ` [PATCH v6 04/14] doc: add notmuch-properties(7) Daniel Kahn Gillmor
2017-10-19 18:21   ` Daniel Kahn Gillmor
2017-10-17 19:09 ` [PATCH v6 05/14] properties: add notmuch_message_remove_all_properties_with_prefix() Daniel Kahn Gillmor
2017-10-17 19:10 ` [PATCH v6 06/14] reindex: drop all properties named with prefix "index." Daniel Kahn Gillmor
2017-10-19 11:52   ` David Bremner
2017-10-20  5:24     ` Daniel Kahn Gillmor
2017-10-19 11:54   ` David Bremner
2017-10-20  5:17     ` Daniel Kahn Gillmor
2017-10-17 19:10 ` [PATCH v6 07/14] crypto: index encrypted parts when indexopts try_decrypt is set Daniel Kahn Gillmor
2017-10-17 19:10 ` [PATCH v6 08/14] config: store index.try_default in the database Daniel Kahn Gillmor
2017-10-17 19:10 ` [PATCH v6 09/14] config: define new option index.try_decrypt Daniel Kahn Gillmor
2017-10-17 19:10 ` Daniel Kahn Gillmor [this message]
2017-10-20 10:49   ` [PATCH v6 10/14] cli: set up shared command-line arguments for indexing David Bremner
2017-10-17 19:10 ` [PATCH v6 11/14] tests: emacs_fcc_message: allow passing --arguments to notmuch new Daniel Kahn Gillmor
2017-10-17 19:10 ` [PATCH v6 12/14] cli/new: add --try-decrypt=(true|false) Daniel Kahn Gillmor
2017-10-17 19:10 ` [PATCH v6 13/14] cli/insert: " Daniel Kahn Gillmor
2017-10-20 10:57   ` David Bremner
2017-10-17 19:10 ` [PATCH v6 14/14] cli/reindex: " Daniel Kahn Gillmor
2017-10-20 11:14 ` cleartext indexing, revision 6 David Bremner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://notmuchmail.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171017191008.8742-11-dkg@fifthhorseman.net \
    --to=dkg@fifthhorseman.net \
    --cc=notmuch@notmuchmail.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).