mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 20:38:08 +01:00
CLI/new: drop the write lock to run the pre-new hook.
This fixes a bug reported in [1]. In principle it could be possible avoid one of these reopens, but it complicates the logic in main with respect to creating new databases. [1]: id:9C1993DF-84BD-4199-A9C8-BADA98498812@bubblegen.co.uk
This commit is contained in:
parent
7d286f0272
commit
a9f74aeeb9
2 changed files with 10 additions and 1 deletions
|
@ -1170,9 +1170,19 @@ notmuch_new_command (unused(notmuch_config_t *config), notmuch_database_t *notmu
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hooks) {
|
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");
|
ret = notmuch_run_hook (notmuch, "pre-new");
|
||||||
if (ret)
|
if (ret)
|
||||||
return EXIT_FAILURE;
|
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);
|
notmuch_exit_if_unmatched_db_uuid (notmuch);
|
||||||
|
|
|
@ -159,7 +159,6 @@ EOF
|
||||||
test_expect_equal_file write.expected write.output
|
test_expect_equal_file write.expected write.output
|
||||||
|
|
||||||
test_begin_subtest "pre-new with write access [${config}]"
|
test_begin_subtest "pre-new with write access [${config}]"
|
||||||
test_subtest_known_broken
|
|
||||||
rm -rf ${HOOK_DIR}
|
rm -rf ${HOOK_DIR}
|
||||||
create_write_hook "pre-new" write.expected write.output $HOOK_DIR
|
create_write_hook "pre-new" write.expected write.output $HOOK_DIR
|
||||||
NOTMUCH_NEW
|
NOTMUCH_NEW
|
||||||
|
|
Loading…
Reference in a new issue