aboutsummaryrefslogtreecommitdiff
path: root/notmuch.c
diff options
context:
space:
mode:
authorDavid Bremner <david@tethera.net>2021-02-09 20:26:40 -0400
committerDavid Bremner <david@tethera.net>2021-03-27 09:26:14 -0300
commitd9bc5c85288526e1e063e14fa00517e8f953be16 (patch)
tree274c8bdb0de5470657adebdfb5d9b66bb8ce481b /notmuch.c
parentb25e57e6cb65c31030322125aafb0a5eb085b420 (diff)
CLI: load merged config at top level
This paves the way for the conversion of the remaining subcommands to the new configuration framework.
Diffstat (limited to 'notmuch.c')
-rw-r--r--notmuch.c29
1 files changed, 26 insertions, 3 deletions
diff --git a/notmuch.c b/notmuch.c
index f2bf9c24..742544c2 100644
--- a/notmuch.c
+++ b/notmuch.c
@@ -175,7 +175,7 @@ static command_t commands[] = {
{ "reindex", notmuch_reindex_command, NOTMUCH_COMMAND_DATABASE_EARLY |
NOTMUCH_COMMAND_DATABASE_WRITE,
"Re-index all messages matching the search terms." },
- { "config", notmuch_config_command, NOTMUCH_COMMAND_CONFIG_OPEN,
+ { "config", notmuch_config_command, NOTMUCH_COMMAND_CONFIG_OPEN | NOTMUCH_COMMAND_CONFIG_LOAD,
"Get or set settings in the notmuch configuration file." },
#if WITH_EMACS
{ "emacs-mua", NULL, 0,
@@ -471,7 +471,7 @@ main (int argc, char *argv[])
notmuch_config_t *config = NULL;
notmuch_database_t *notmuch = NULL;
int opt_index;
- int ret;
+ int ret = EXIT_SUCCESS;
notmuch_opt_desc_t options[] = {
{ .opt_string = &config_file_name, .name = "config" },
@@ -559,7 +559,30 @@ main (int argc, char *argv[])
return EXIT_FAILURE;
}
}
- } else {
+ }
+
+ if (command->mode & NOTMUCH_COMMAND_CONFIG_LOAD) {
+ char *status_string = NULL;
+ notmuch_status_t status;
+ status = notmuch_database_load_config (NULL,
+ config_file_name,
+ NULL,
+ &notmuch,
+ &status_string);
+ if (status) {
+ if (status_string) {
+ fputs (status_string, stderr);
+ free (status_string);
+ }
+
+ if (status == NOTMUCH_STATUS_NO_CONFIG)
+ fputs ("Try running 'notmuch setup' to create a configuration.", stderr);
+ goto DONE;
+ }
+
+ }
+
+ if (command->mode & NOTMUCH_COMMAND_CONFIG_OPEN) {
config = notmuch_config_open (local, config_file_name, command->mode);
if (! config) {
ret = EXIT_FAILURE;