X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=notmuch-new.c;h=8214fb23a81b55af1ae00248e25e06bd1e3d003e;hb=986056bdbcfea642a2d08f7ee257f7aaaed433b9;hp=21e66af1c55b8d285a1ae9871a88d0e0bac75479;hpb=4c79a2dabe38ac72eb9eb21620f2ffca5f1885c6;p=notmuch diff --git a/notmuch-new.c b/notmuch-new.c index 21e66af1..8214fb23 100644 --- a/notmuch-new.c +++ b/notmuch-new.c @@ -673,8 +673,9 @@ add_files (notmuch_database_t *notmuch, char *absolute = talloc_asprintf (state->removed_directories, "%s/%s", path, filename); if (state->debug) - printf ("(D) add_files, pass 2: queuing passed directory %s for deletion from database\n", - absolute); + printf ( + "(D) add_files, pass 2: queuing passed directory %s for deletion from database\n", + absolute); _filename_list_add (state->removed_directories, absolute); } @@ -756,8 +757,9 @@ add_files (notmuch_database_t *notmuch, notmuch_filenames_get (db_subdirs)); if (state->debug) - printf ("(D) add_files, pass 3: queuing leftover directory %s for deletion from database\n", - absolute); + printf ( + "(D) add_files, pass 3: queuing leftover directory %s for deletion from database\n", + absolute); _filename_list_add (state->removed_directories, absolute); @@ -1043,7 +1045,8 @@ print_results (const add_files_state_t *state) } static int -_maybe_upgrade (notmuch_database_t *notmuch, add_files_state_t *state) { +_maybe_upgrade (notmuch_database_t *notmuch, add_files_state_t *state) +{ if (notmuch_database_needs_upgrade (notmuch)) { time_t now = time (NULL); struct tm *gm_time = gmtime (&now); @@ -1094,7 +1097,8 @@ _maybe_upgrade (notmuch_database_t *notmuch, add_files_state_t *state) { } int -notmuch_new_command (unused(notmuch_config_t *config), notmuch_database_t *notmuch, int argc, char *argv[]) +notmuch_new_command (unused(notmuch_config_t *config), notmuch_database_t *notmuch, + int argc, char *argv[]) { add_files_state_t add_files_state = { .verbosity = VERBOSITY_NORMAL, @@ -1155,7 +1159,7 @@ notmuch_new_command (unused(notmuch_config_t *config), notmuch_database_t *notmu for (notmuch_config_values_start (add_files_state.new_tags); notmuch_config_values_valid (add_files_state.new_tags); notmuch_config_values_move_to_next (add_files_state.new_tags)) { - const char *tag,*error_msg; + const char *tag, *error_msg; tag = notmuch_config_values_get (add_files_state.new_tags); error_msg = illegal_tag (tag, false); @@ -1166,9 +1170,19 @@ notmuch_new_command (unused(notmuch_config_t *config), notmuch_database_t *notmu } if (hooks) { + /* Drop write lock to run hook */ + status = notmuch_database_reopen (notmuch, NOTMUCH_DATABASE_MODE_READ_ONLY); + if (print_status_database ("notmuch new", notmuch, status)) + return EXIT_FAILURE; + ret = notmuch_run_hook (notmuch, "pre-new"); if (ret) return EXIT_FAILURE; + + /* acquire write lock again */ + status = notmuch_database_reopen (notmuch, NOTMUCH_DATABASE_MODE_READ_WRITE); + if (print_status_database ("notmuch new", notmuch, status)) + return EXIT_FAILURE; } notmuch_exit_if_unmatched_db_uuid (notmuch); @@ -1233,7 +1247,8 @@ notmuch_new_command (unused(notmuch_config_t *config), notmuch_database_t *notmu if (do_print_progress) { do_print_progress = 0; generic_print_progress ("Cleaned up", "messages", - tv_start, add_files_state.removed_messages + add_files_state.renamed_messages, + tv_start, add_files_state.removed_messages + + add_files_state.renamed_messages, add_files_state.removed_files->count); } }