* cfind: add support for the --after and --personal parameters, and document them
This commit is contained in:
@ -130,7 +130,8 @@ print_plain (const char *email, const char *name, gboolean color)
|
||||
|
||||
struct _ECData {
|
||||
MuConfigFormat format;
|
||||
gboolean color;
|
||||
gboolean color, personal;
|
||||
time_t after;
|
||||
};
|
||||
typedef struct _ECData ECData;
|
||||
|
||||
@ -139,6 +140,12 @@ static void
|
||||
each_contact (const char *email, const char *name, gboolean personal,
|
||||
time_t tstamp, ECData *ecdata)
|
||||
{
|
||||
if (ecdata->personal && !personal)
|
||||
return;
|
||||
|
||||
if (ecdata->after < tstamp)
|
||||
return;
|
||||
|
||||
switch (ecdata->format) {
|
||||
case MU_CONFIG_FORMAT_MUTT_ALIAS:
|
||||
each_contact_mutt_alias (email, name);
|
||||
@ -166,7 +173,9 @@ each_contact (const char *email, const char *name, gboolean personal,
|
||||
|
||||
|
||||
static MuError
|
||||
run_cmd_cfind (const char* pattern, MuConfigFormat format,
|
||||
run_cmd_cfind (const char* pattern,
|
||||
gboolean personal, time_t after,
|
||||
MuConfigFormat format,
|
||||
gboolean color, GError **err)
|
||||
{
|
||||
gboolean rv;
|
||||
@ -174,8 +183,10 @@ run_cmd_cfind (const char* pattern, MuConfigFormat format,
|
||||
size_t num;
|
||||
ECData ecdata;
|
||||
|
||||
ecdata.format = format;
|
||||
ecdata.color = color;
|
||||
ecdata.personal = personal;
|
||||
ecdata.after = after;
|
||||
ecdata.format = format;
|
||||
ecdata.color = color;
|
||||
|
||||
contacts = mu_contacts_new (mu_runtime_path(MU_RUNTIME_PATH_CONTACTS));
|
||||
if (!contacts) {
|
||||
@ -239,6 +250,10 @@ mu_cmd_cfind (MuConfig *opts, GError **err)
|
||||
return MU_ERROR_IN_PARAMETERS;
|
||||
}
|
||||
|
||||
return run_cmd_cfind (opts->params[1], opts->format,
|
||||
!opts->nocolor, err);
|
||||
return run_cmd_cfind (opts->params[1],
|
||||
opts->personal,
|
||||
opts->after,
|
||||
opts->format,
|
||||
!opts->nocolor,
|
||||
err);
|
||||
}
|
||||
|
||||
@ -151,8 +151,7 @@ config_options_group_index (void)
|
||||
{"my-address", 0, 0, G_OPTION_ARG_STRING_ARRAY,&MU_CONFIG.my_addresses,
|
||||
"my e-mail address (regexp); can be used multiple times", NULL},
|
||||
{"autoupgrade", 0, 0, G_OPTION_ARG_NONE, &MU_CONFIG.autoupgrade,
|
||||
"auto-upgrade the database with new mu versions (false)",
|
||||
NULL},
|
||||
"auto-upgrade the database with new mu versions (false)", NULL},
|
||||
{"nocleanup", 0, 0, G_OPTION_ARG_NONE, &MU_CONFIG.nocleanup,
|
||||
"don't clean up the database after indexing (false)", NULL},
|
||||
{"xbatchsize", 0, 0, G_OPTION_ARG_INT, &MU_CONFIG.xbatchsize,
|
||||
@ -273,6 +272,7 @@ set_group_cfind_defaults (void)
|
||||
else
|
||||
MU_CONFIG.format = get_output_format (MU_CONFIG.formatstr);
|
||||
|
||||
MU_CONFIG.after = 0;
|
||||
}
|
||||
|
||||
|
||||
@ -284,6 +284,10 @@ config_options_group_cfind (void)
|
||||
{"format", 'o', 0, G_OPTION_ARG_STRING, &MU_CONFIG.formatstr,
|
||||
"output format ('plain'(*), 'mutt', 'wanderlust',"
|
||||
"'org-contact', 'csv')", NULL},
|
||||
{"personal", 0, 0, G_OPTION_ARG_NONE, &MU_CONFIG.personal,
|
||||
"whether to only get 'personal' contacts", NULL},
|
||||
{"after", 0, 0, G_OPTION_ARG_INT, &MU_CONFIG.after,
|
||||
"only get addresses last seen after T", NULL},
|
||||
{NULL, 0, 0, 0, NULL, NULL, NULL}
|
||||
};
|
||||
|
||||
|
||||
@ -136,6 +136,10 @@ struct _MuConfig {
|
||||
gboolean terminator; /* add separator \f between
|
||||
* multiple messages in mu
|
||||
* view */
|
||||
/* options for cfind */
|
||||
gboolean personal; /* only show 'personal' addresses */b
|
||||
time_t after; /* only show addresses last
|
||||
* seen after T */
|
||||
|
||||
/* output to a maildir with symlinks */
|
||||
char *linksdir; /* maildir to output symlinks */
|
||||
|
||||
Reference in New Issue
Block a user