X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=notmuch-insert.c;h=214d4d03a0810d6845d845288455eb971441574f;hb=053a390370922a213b57f4f2e4bc2c5c8fb88c74;hp=e483b94905ff653f2e2602283903676bc12d7e91;hpb=f994f0e7df178eb31c656329bb28ffa832ac4364;p=notmuch diff --git a/notmuch-insert.c b/notmuch-insert.c index e483b949..214d4d03 100644 --- a/notmuch-insert.c +++ b/notmuch-insert.c @@ -34,7 +34,7 @@ static volatile sig_atomic_t interrupted; static void handle_sigint (unused (int sig)) { - static char msg[] = "Stopping... \n"; + static const char msg[] = "Stopping... \n"; /* This write is "opportunistic", so it's okay to ignore the * result. It is not required for correctness, and if it does @@ -444,11 +444,11 @@ add_file (notmuch_database_t *notmuch, const char *path, tag_op_list_t *tag_ops, } int -notmuch_insert_command (unused(notmuch_config_t *config),notmuch_database_t *notmuch, int argc, char *argv[]) +notmuch_insert_command (notmuch_database_t *notmuch, int argc, char *argv[]) { notmuch_status_t status, close_status; struct sigaction action; - const char *db_path; + const char *mail_root; notmuch_config_values_t *new_tags = NULL; tag_op_list_t *tag_ops; char *query_string = NULL; @@ -461,6 +461,8 @@ notmuch_insert_command (unused(notmuch_config_t *config),notmuch_database_t *not char *maildir; char *newpath; int opt_index; + notmuch_indexopts_t *indexopts = notmuch_database_get_default_indexopts (notmuch); + void *local = talloc_new (NULL); notmuch_opt_desc_t options[] = { @@ -478,16 +480,9 @@ notmuch_insert_command (unused(notmuch_config_t *config),notmuch_database_t *not if (opt_index < 0) return EXIT_FAILURE; - notmuch_process_shared_options (argv[0]); - - - /* XXX TODO replace this use of DATABASE_PATH with something specific to hooks */ - db_path = notmuch_config_get (notmuch, NOTMUCH_CONFIG_DATABASE_PATH); + notmuch_process_shared_options (notmuch, argv[0]); - if (! db_path) - INTERNAL_ERROR ("Unable to retrieve database path"); - else - db_path = talloc_strdup (local, db_path); + mail_root = notmuch_config_get (notmuch, NOTMUCH_CONFIG_MAIL_ROOT); new_tags = notmuch_config_get_values (notmuch, NOTMUCH_CONFIG_NEW_TAGS); @@ -533,7 +528,7 @@ notmuch_insert_command (unused(notmuch_config_t *config),notmuch_database_t *not return EXIT_FAILURE; } - maildir = talloc_asprintf (local, "%s/%s", db_path, folder); + maildir = talloc_asprintf (local, "%s/%s", mail_root, folder); if (! maildir) { fprintf (stderr, "Out of memory\n"); return EXIT_FAILURE; @@ -557,9 +552,7 @@ notmuch_insert_command (unused(notmuch_config_t *config),notmuch_database_t *not return EXIT_FAILURE; } - notmuch_exit_if_unmatched_db_uuid (notmuch); - - status = notmuch_process_shared_indexing_options (notmuch); + status = notmuch_process_shared_indexing_options (indexopts); if (status != NOTMUCH_STATUS_SUCCESS) { fprintf (stderr, "Error: Failed to process index options. (%s)\n", notmuch_status_to_string (status)); @@ -567,10 +560,10 @@ notmuch_insert_command (unused(notmuch_config_t *config),notmuch_database_t *not } /* Index the message. */ - status = add_file (notmuch, newpath, tag_ops, synchronize_flags, keep, indexing_cli_choices.opts); + status = add_file (notmuch, newpath, tag_ops, synchronize_flags, keep, indexopts); /* Commit changes. */ - close_status = notmuch_database_destroy (notmuch); + close_status = notmuch_database_close (notmuch); if (close_status) { /* Hold on to the first error, if any. */ if (! status) @@ -595,9 +588,11 @@ notmuch_insert_command (unused(notmuch_config_t *config),notmuch_database_t *not if (hooks && status == NOTMUCH_STATUS_SUCCESS) { /* Ignore hook failures. */ - notmuch_run_hook (db_path, "post-insert"); + notmuch_run_hook (notmuch, "post-insert"); } + notmuch_database_destroy (notmuch); + talloc_free (local); return status_to_exit (status);