CLI: add (unused) database argument to subcommands.

This will allow transitioning individual subcommands to the new
configuration framework. Eventually when they are all converted we can
remove the notmuch_config_t * argument.

For now, live with the parameter shadowing in some some subcommands;
it will go away when they are converted.
This commit is contained in:
David Bremner 2020-12-21 08:55:14 -04:00
parent 06a64cf0aa
commit 319efe21c9
15 changed files with 38 additions and 33 deletions

View file

@ -171,46 +171,46 @@ void
notmuch_exit_if_unsupported_format (void);
int
notmuch_count_command (notmuch_config_t *config, int argc, char *argv[]);
notmuch_count_command (notmuch_config_t *config, notmuch_database_t *notmuch, int argc, char *argv[]);
int
notmuch_dump_command (notmuch_config_t *config, int argc, char *argv[]);
notmuch_dump_command (notmuch_config_t *config, notmuch_database_t *notmuch, int argc, char *argv[]);
int
notmuch_new_command (notmuch_config_t *config, int argc, char *argv[]);
notmuch_new_command (notmuch_config_t *config, notmuch_database_t *notmuch, int argc, char *argv[]);
int
notmuch_insert_command (notmuch_config_t *config, int argc, char *argv[]);
notmuch_insert_command (notmuch_config_t *config, notmuch_database_t *notmuch, int argc, char *argv[]);
int
notmuch_reindex_command (notmuch_config_t *config, int argc, char *argv[]);
notmuch_reindex_command (notmuch_config_t *config, notmuch_database_t *notmuch, int argc, char *argv[]);
int
notmuch_reply_command (notmuch_config_t *config, int argc, char *argv[]);
notmuch_reply_command (notmuch_config_t *config, notmuch_database_t *notmuch, int argc, char *argv[]);
int
notmuch_restore_command (notmuch_config_t *config, int argc, char *argv[]);
notmuch_restore_command (notmuch_config_t *config, notmuch_database_t *notmuch, int argc, char *argv[]);
int
notmuch_search_command (notmuch_config_t *config, int argc, char *argv[]);
notmuch_search_command (notmuch_config_t *config, notmuch_database_t *notmuch, int argc, char *argv[]);
int
notmuch_address_command (notmuch_config_t *config, int argc, char *argv[]);
notmuch_address_command (notmuch_config_t *config, notmuch_database_t *notmuch, int argc, char *argv[]);
int
notmuch_setup_command (notmuch_config_t *config, int argc, char *argv[]);
notmuch_setup_command (notmuch_config_t *config, notmuch_database_t *notmuch, int argc, char *argv[]);
int
notmuch_show_command (notmuch_config_t *config, int argc, char *argv[]);
notmuch_show_command (notmuch_config_t *config, notmuch_database_t *notmuch, int argc, char *argv[]);
int
notmuch_tag_command (notmuch_config_t *config, int argc, char *argv[]);
notmuch_tag_command (notmuch_config_t *config, notmuch_database_t *notmuch, int argc, char *argv[]);
int
notmuch_config_command (notmuch_config_t *config, int argc, char *argv[]);
notmuch_config_command (notmuch_config_t *config, notmuch_database_t *notmuch, int argc, char *argv[]);
int
notmuch_compact_command (notmuch_config_t *config, int argc, char *argv[]);
notmuch_compact_command (notmuch_config_t *config, notmuch_database_t *notmuch, int argc, char *argv[]);
const char *
notmuch_time_relative_date (const void *ctx, time_t then);

View file

@ -27,7 +27,7 @@ status_update_cb (const char *msg, unused (void *closure))
}
int
notmuch_compact_command (notmuch_config_t *config, int argc, char *argv[])
notmuch_compact_command (notmuch_config_t *config, unused(notmuch_database_t *notmuch), int argc, char *argv[])
{
const char *path = notmuch_config_get_database_path (config);
const char *backup_path = NULL;

View file

@ -1102,7 +1102,7 @@ notmuch_config_command_list (notmuch_config_t *config)
}
int
notmuch_config_command (notmuch_config_t *config, int argc, char *argv[])
notmuch_config_command (notmuch_config_t *config, unused(notmuch_database_t *notmuch), int argc, char *argv[])
{
int ret;
int opt_index;

View file

@ -148,7 +148,7 @@ count_file (notmuch_database_t *notmuch, FILE *input, const char **exclude_tags,
}
int
notmuch_count_command (notmuch_config_t *config, int argc, char *argv[])
notmuch_count_command (notmuch_config_t *config, unused(notmuch_database_t *notmuch), int argc, char *argv[])
{
notmuch_database_t *notmuch;
char *query_str;

View file

@ -361,7 +361,7 @@ notmuch_database_dump (notmuch_database_t *notmuch,
}
int
notmuch_dump_command (notmuch_config_t *config, int argc, char *argv[])
notmuch_dump_command (notmuch_config_t *config, unused(notmuch_database_t *notmuch), int argc, char *argv[])
{
notmuch_database_t *notmuch;
const char *query_str = NULL;

View file

@ -444,7 +444,7 @@ add_file (notmuch_database_t *notmuch, const char *path, tag_op_list_t *tag_ops,
}
int
notmuch_insert_command (notmuch_config_t *config, int argc, char *argv[])
notmuch_insert_command (notmuch_config_t *config, unused(notmuch_database_t *notmuch), int argc, char *argv[])
{
notmuch_status_t status, close_status;
notmuch_database_t *notmuch;

View file

@ -1043,7 +1043,7 @@ print_results (const add_files_state_t *state)
}
int
notmuch_new_command (notmuch_config_t *config, int argc, char *argv[])
notmuch_new_command (notmuch_config_t *config, unused(notmuch_database_t *notmuch), int argc, char *argv[])
{
notmuch_database_t *notmuch;
add_files_state_t add_files_state = {

View file

@ -83,7 +83,7 @@ reindex_query (notmuch_database_t *notmuch, const char *query_string,
}
int
notmuch_reindex_command (notmuch_config_t *config, int argc, char *argv[])
notmuch_reindex_command (notmuch_config_t *config, unused(notmuch_database_t *notmuch), int argc, char *argv[])
{
char *query_string = NULL;
notmuch_database_t *notmuch;

View file

@ -700,7 +700,7 @@ do_reply (notmuch_config_t *config,
}
int
notmuch_reply_command (notmuch_config_t *config, int argc, char *argv[])
notmuch_reply_command (notmuch_config_t *config, unused(notmuch_database_t *notmuch), int argc, char *argv[])
{
notmuch_database_t *notmuch;
notmuch_query_t *query;

View file

@ -219,7 +219,7 @@ parse_sup_line (void *ctx, char *line,
}
int
notmuch_restore_command (notmuch_config_t *config, int argc, char *argv[])
notmuch_restore_command (notmuch_config_t *config, unused(notmuch_database_t *notmuch), int argc, char *argv[])
{
notmuch_database_t *notmuch;
bool accumulate = false;

View file

@ -805,7 +805,7 @@ static const notmuch_opt_desc_t common_options[] = {
};
int
notmuch_search_command (notmuch_config_t *config, int argc, char *argv[])
notmuch_search_command (notmuch_config_t *config, unused(notmuch_database_t *notmuch), int argc, char *argv[])
{
search_context_t *ctx = &search_context;
int opt_index, ret;
@ -871,7 +871,7 @@ notmuch_search_command (notmuch_config_t *config, int argc, char *argv[])
}
int
notmuch_address_command (notmuch_config_t *config, int argc, char *argv[])
notmuch_address_command (notmuch_config_t *config, unused(notmuch_database_t *notmuch), int argc, char *argv[])
{
search_context_t *ctx = &search_context;
int opt_index, ret;

View file

@ -122,6 +122,7 @@ parse_tag_list (void *ctx, char *response)
int
notmuch_setup_command (notmuch_config_t *config,
unused(notmuch_database_t *notmuch),
int argc, char *argv[])
{
char *response = NULL;

View file

@ -1215,7 +1215,7 @@ static const notmuch_show_format_t *formatters[] = {
};
int
notmuch_show_command (notmuch_config_t *config, int argc, char *argv[])
notmuch_show_command (notmuch_config_t *config, unused(notmuch_database_t *notmuch), int argc, char *argv[])
{
notmuch_database_t *notmuch;
notmuch_query_t *query;

View file

@ -187,7 +187,7 @@ tag_file (void *ctx, notmuch_database_t *notmuch, tag_op_flag_t flags,
}
int
notmuch_tag_command (notmuch_config_t *config, int argc, char *argv[])
notmuch_tag_command (notmuch_config_t *config, unused(notmuch_database_t *notmuch), int argc, char *argv[])
{
tag_op_list_t *tag_ops = NULL;
char *query_string = NULL;

View file

@ -27,8 +27,11 @@
*
* The return value will be used as notmuch exit status code,
* preferably EXIT_SUCCESS or EXIT_FAILURE.
*
* Each subcommand should be passed either a config object, or an open
* database
*/
typedef int (*command_function_t) (notmuch_config_t *config, int argc, char *argv[]);
typedef int (*command_function_t) (notmuch_config_t *config, notmuch_database_t *notmuch, int argc, char *argv[]);
typedef struct command {
const char *name;
@ -38,10 +41,10 @@ typedef struct command {
} command_t;
static int
notmuch_help_command (notmuch_config_t *config, int argc, char *argv[]);
notmuch_help_command (notmuch_config_t *config, notmuch_database_t *notmuch, int argc, char *argv[]);
static int
notmuch_command (notmuch_config_t *config, int argc, char *argv[]);
notmuch_command (notmuch_config_t *config, notmuch_database_t *notmuch, int argc, char *argv[]);
static int
_help_for (const char *topic);
@ -335,7 +338,7 @@ _help_for (const char *topic_name)
}
static int
notmuch_help_command (unused (notmuch_config_t *config), int argc, char *argv[])
notmuch_help_command (unused (notmuch_config_t *config), unused(notmuch_database_t *notmuch), int argc, char *argv[])
{
int opt_index;
@ -360,6 +363,7 @@ notmuch_help_command (unused (notmuch_config_t *config), int argc, char *argv[])
*/
static int
notmuch_command (notmuch_config_t *config,
unused(notmuch_database_t *notmuch),
unused(int argc), unused(char **argv))
{
char *db_path;
@ -369,7 +373,7 @@ notmuch_command (notmuch_config_t *config,
* notmuch_setup_command which will give a nice welcome message,
* and interactively guide the user through the configuration. */
if (notmuch_config_is_new (config))
return notmuch_setup_command (config, 0, NULL);
return notmuch_setup_command (config, NULL, 0, NULL);
/* Notmuch is already configured, but is there a database? */
db_path = talloc_asprintf (config, "%s/%s",
@ -502,7 +506,7 @@ main (int argc, char *argv[])
goto DONE;
}
ret = (command->function)(config, argc - opt_index, argv + opt_index);
ret = (command->function)(config, NULL, argc - opt_index, argv + opt_index);
DONE:
if (config)