mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-28 05:34:11 +01:00
CLI/restore: convert to new config framework
Switch one configuration check to new n_c_get_bool function, and switch use of config as talloc context to notmuch.
This commit is contained in:
parent
a4af7a2a1b
commit
66adcd4f53
3 changed files with 31 additions and 8 deletions
|
@ -219,9 +219,8 @@ parse_sup_line (void *ctx, char *line,
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
notmuch_restore_command (notmuch_config_t *config, unused(notmuch_database_t *notmuch), int argc, char *argv[])
|
notmuch_restore_command (unused(notmuch_config_t *config), notmuch_database_t *notmuch, int argc, char *argv[])
|
||||||
{
|
{
|
||||||
notmuch_database_t *notmuch;
|
|
||||||
bool accumulate = false;
|
bool accumulate = false;
|
||||||
tag_op_flag_t flags = 0;
|
tag_op_flag_t flags = 0;
|
||||||
tag_op_list_t *tag_ops;
|
tag_op_list_t *tag_ops;
|
||||||
|
@ -238,12 +237,16 @@ notmuch_restore_command (notmuch_config_t *config, unused(notmuch_database_t *no
|
||||||
int include = 0;
|
int include = 0;
|
||||||
int input_format = DUMP_FORMAT_AUTO;
|
int input_format = DUMP_FORMAT_AUTO;
|
||||||
int errnum;
|
int errnum;
|
||||||
|
notmuch_bool_t synchronize_flags;
|
||||||
|
|
||||||
if (notmuch_database_open (notmuch_config_get_database_path (config),
|
if (print_status_database (
|
||||||
NOTMUCH_DATABASE_MODE_READ_WRITE, ¬much))
|
"notmuch restore",
|
||||||
|
notmuch,
|
||||||
|
notmuch_config_get_bool (notmuch, NOTMUCH_CONFIG_SYNC_MAILDIR_FLAGS,
|
||||||
|
&synchronize_flags)))
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
|
|
||||||
if (notmuch_config_get_maildir_synchronize_flags (config))
|
if (synchronize_flags)
|
||||||
flags |= TAG_FLAG_MAILDIR_SYNC;
|
flags |= TAG_FLAG_MAILDIR_SYNC;
|
||||||
|
|
||||||
notmuch_opt_desc_t options[] = {
|
notmuch_opt_desc_t options[] = {
|
||||||
|
@ -310,7 +313,7 @@ notmuch_restore_command (notmuch_config_t *config, unused(notmuch_database_t *no
|
||||||
goto DONE;
|
goto DONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
tag_ops = tag_op_list_create (config);
|
tag_ops = tag_op_list_create (notmuch);
|
||||||
if (tag_ops == NULL) {
|
if (tag_ops == NULL) {
|
||||||
fprintf (stderr, "Out of memory.\n");
|
fprintf (stderr, "Out of memory.\n");
|
||||||
ret = EXIT_FAILURE;
|
ret = EXIT_FAILURE;
|
||||||
|
@ -377,7 +380,7 @@ notmuch_restore_command (notmuch_config_t *config, unused(notmuch_database_t *no
|
||||||
if (line_ctx != NULL)
|
if (line_ctx != NULL)
|
||||||
talloc_free (line_ctx);
|
talloc_free (line_ctx);
|
||||||
|
|
||||||
line_ctx = talloc_new (config);
|
line_ctx = talloc_new (notmuch);
|
||||||
|
|
||||||
if ((include & DUMP_INCLUDE_PROPERTIES) && line_len >= 2 && line[0] == '#' && line[1] == '=') {
|
if ((include & DUMP_INCLUDE_PROPERTIES) && line_len >= 2 && line[0] == '#' && line[1] == '=') {
|
||||||
ret = process_properties_line (notmuch, line + 2);
|
ret = process_properties_line (notmuch, line + 2);
|
||||||
|
|
|
@ -161,7 +161,7 @@ static command_t commands[] = {
|
||||||
"Add/remove tags for all messages matching the search terms." },
|
"Add/remove tags for all messages matching the search terms." },
|
||||||
{ "dump", notmuch_dump_command, NOTMUCH_COMMAND_DATABASE_EARLY | NOTMUCH_COMMAND_DATABASE_WRITE,
|
{ "dump", notmuch_dump_command, NOTMUCH_COMMAND_DATABASE_EARLY | NOTMUCH_COMMAND_DATABASE_WRITE,
|
||||||
"Create a plain-text dump of the tags for each message." },
|
"Create a plain-text dump of the tags for each message." },
|
||||||
{ "restore", notmuch_restore_command, NOTMUCH_COMMAND_CONFIG_OPEN,
|
{ "restore", notmuch_restore_command, NOTMUCH_COMMAND_DATABASE_EARLY | NOTMUCH_COMMAND_DATABASE_WRITE,
|
||||||
"Restore the tags from the given dump file (see 'dump')." },
|
"Restore the tags from the given dump file (see 'dump')." },
|
||||||
{ "compact", notmuch_compact_command, NOTMUCH_COMMAND_CONFIG_OPEN,
|
{ "compact", notmuch_compact_command, NOTMUCH_COMMAND_CONFIG_OPEN,
|
||||||
"Compact the notmuch database." },
|
"Compact the notmuch database." },
|
||||||
|
|
|
@ -122,4 +122,24 @@ notmuch dump --include=tags query:$query_name | sort >> OUTPUT
|
||||||
restore_config
|
restore_config
|
||||||
test_expect_equal_file EXPECTED OUTPUT
|
test_expect_equal_file EXPECTED OUTPUT
|
||||||
|
|
||||||
|
test_begin_subtest "restore with xdg config"
|
||||||
|
backup_config
|
||||||
|
notmuch dump '*' > EXPECTED
|
||||||
|
notmuch tag -inbox '*'
|
||||||
|
xdg_config
|
||||||
|
notmuch restore --input=EXPECTED
|
||||||
|
notmuch dump > OUTPUT
|
||||||
|
restore_config
|
||||||
|
test_expect_equal_file EXPECTED OUTPUT
|
||||||
|
|
||||||
|
test_begin_subtest "restore with xdg+profile config"
|
||||||
|
backup_config
|
||||||
|
notmuch dump '*' > EXPECTED
|
||||||
|
notmuch tag -inbox '*'
|
||||||
|
xdg_config work
|
||||||
|
notmuch restore --input=EXPECTED
|
||||||
|
notmuch dump > OUTPUT
|
||||||
|
restore_config
|
||||||
|
test_expect_equal_file EXPECTED OUTPUT
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
|
Loading…
Reference in a new issue