cli/insert: delay database open until after writing mail file

The idea is to get the mail written to disk, even if we can't open the
database (e.g. because some other process has a write lock, and notmuch
is compiled for non-blocking opens).
This commit is contained in:
David Bremner 2016-11-27 11:24:58 -04:00
parent 27e293f653
commit 9259b97fa2

View file

@ -532,18 +532,18 @@ notmuch_insert_command (notmuch_config_t *config, int argc, char *argv[])
action.sa_flags = 0;
sigaction (SIGINT, &action, NULL);
if (notmuch_database_open (notmuch_config_get_database_path (config),
/* Write the message to the Maildir new directory. */
newpath = maildir_write_new (config, STDIN_FILENO, maildir);
if (! newpath) {
return EXIT_FAILURE;
}
if (notmuch_database_open (notmuch_config_get_database_path (config),
NOTMUCH_DATABASE_MODE_READ_WRITE, &notmuch))
return EXIT_FAILURE;
notmuch_exit_if_unmatched_db_uuid (notmuch);
/* Write the message to the Maildir new directory. */
newpath = maildir_write_new (config, STDIN_FILENO, maildir);
if (! newpath) {
notmuch_database_destroy (notmuch);
return EXIT_FAILURE;
}
/* Index the message. */
status = add_file (notmuch, newpath, tag_ops, synchronize_flags, keep);