cli/reindex: convert new config framework

The only non-trivial part is switching the talloc context for
query_string_from args from 'config' to 'notmuch'.
This commit is contained in:
David Bremner 2020-10-05 20:35:26 -03:00
parent f994f0e7df
commit 0ab0b48be2
3 changed files with 33 additions and 8 deletions

View file

@ -83,10 +83,9 @@ reindex_query (notmuch_database_t *notmuch, const char *query_string,
}
int
notmuch_reindex_command (notmuch_config_t *config, unused(notmuch_database_t *notmuch), int argc, char *argv[])
notmuch_reindex_command (unused(notmuch_config_t *config), notmuch_database_t *notmuch, int argc, char *argv[])
{
char *query_string = NULL;
notmuch_database_t *notmuch;
struct sigaction action;
int opt_index;
int ret;
@ -111,10 +110,6 @@ notmuch_reindex_command (notmuch_config_t *config, unused(notmuch_database_t *no
notmuch_process_shared_options (argv[0]);
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);
status = notmuch_process_shared_indexing_options (notmuch);
@ -124,7 +119,7 @@ notmuch_reindex_command (notmuch_config_t *config, unused(notmuch_database_t *no
return EXIT_FAILURE;
}
query_string = query_string_from_args (config, argc - opt_index, argv + opt_index);
query_string = query_string_from_args (notmuch, argc - opt_index, argv + opt_index);
if (query_string == NULL) {
fprintf (stderr, "Out of memory\n");
return EXIT_FAILURE;

View file

@ -165,7 +165,7 @@ static command_t commands[] = {
"Restore the tags from the given dump file (see 'dump')." },
{ "compact", notmuch_compact_command, NOTMUCH_COMMAND_CONFIG_OPEN,
"Compact the notmuch database." },
{ "reindex", notmuch_reindex_command, NOTMUCH_COMMAND_CONFIG_OPEN,
{ "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,
"Get or set settings in the notmuch configuration file." },

View file

@ -180,4 +180,34 @@ EOF
restore_config
test_expect_equal_file EXPECTED OUTPUT
test_begin_subtest "reindex with saved query from config file"
backup_config
query_name="test${RANDOM}"
count1=$(notmuch count --lastmod '*' | cut -f3)
printf "\n[query]\n${query_name} = tag:inbox\n" >> notmuch-config
notmuch reindex query:$query_name
count2=$(notmuch count --lastmod '*' | cut -f3)
restore_config
test_expect_success "test '$count2 -gt $count1'"
test_begin_subtest "reindex with saved query from config file (xdg)"
query_name="test${RANDOM}"
count1=$(notmuch count --lastmod '*' | cut -f3)
xdg_config
printf "\n[query]\n${query_name} = tag:inbox\n" >> ${CONFIG_PATH}
notmuch reindex query:$query_name
count2=$(notmuch count --lastmod '*' | cut -f3)
restore_config
test_expect_success "test '$count2 -gt $count1'"
test_begin_subtest "reindex with saved query from config file (xdg+profile)"
query_name="test${RANDOM}"
count1=$(notmuch count --lastmod '*' | cut -f3)
xdg_config $query_name
printf "\n[query]\n${query_name} = tag:inbox\n" >> ${CONFIG_PATH}
notmuch reindex query:$query_name
count2=$(notmuch count --lastmod '*' | cut -f3)
restore_config
test_expect_success "test '$count2 -gt $count1'"
test_done