mirror of https://github.com/djcb/mu.git
* cfind: add support for the --after and --personal parameters, and document them
This commit is contained in:
parent
b150f45090
commit
2c99e598a1
|
@ -1,4 +1,4 @@
|
||||||
.TH MU CFIND 1 "May 2011" "User Manuals"
|
.TH MU CFIND 1 "June 2012" "User Manuals"
|
||||||
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
|
|
||||||
|
@ -61,6 +61,24 @@ sets the output format to the given value. The following are available:
|
||||||
| csv | comma-separated values |
|
| csv | comma-separated values |
|
||||||
.fi
|
.fi
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB\-\-personal\fR only show addresses seen in messages where one of 'my'
|
||||||
|
e-mail addresses was seen in one of the address fields; this is to exclude
|
||||||
|
addresses only seen in mailing-list messages. See the \fB\-\-my-address\fR
|
||||||
|
parameter in \fBmu index\fR.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB\-\-after=\fR\fI<timestamp>\fR only show addresses last seen after
|
||||||
|
\fI<timestamp>\fR. \fI<timestamp>\fR is a UNIX \fBtime_t\fR value, the number
|
||||||
|
of seconds since 1970-01-01 (in UTC).
|
||||||
|
|
||||||
|
From the command line, you can use the \fBdate\fR command to get this
|
||||||
|
value. For example, only consider addresses last seen after 2009-06-01, you
|
||||||
|
could specify
|
||||||
|
.nf
|
||||||
|
--after=`date +%s --date='2009-06-01'`
|
||||||
|
.fi
|
||||||
|
|
||||||
.SH RETURN VALUE
|
.SH RETURN VALUE
|
||||||
|
|
||||||
\fBmu cfind\fR returns 0 upon successful completion -- that is, at least one
|
\fBmu cfind\fR returns 0 upon successful completion -- that is, at least one
|
||||||
|
|
|
@ -130,7 +130,8 @@ print_plain (const char *email, const char *name, gboolean color)
|
||||||
|
|
||||||
struct _ECData {
|
struct _ECData {
|
||||||
MuConfigFormat format;
|
MuConfigFormat format;
|
||||||
gboolean color;
|
gboolean color, personal;
|
||||||
|
time_t after;
|
||||||
};
|
};
|
||||||
typedef struct _ECData ECData;
|
typedef struct _ECData ECData;
|
||||||
|
|
||||||
|
@ -139,6 +140,12 @@ static void
|
||||||
each_contact (const char *email, const char *name, gboolean personal,
|
each_contact (const char *email, const char *name, gboolean personal,
|
||||||
time_t tstamp, ECData *ecdata)
|
time_t tstamp, ECData *ecdata)
|
||||||
{
|
{
|
||||||
|
if (ecdata->personal && !personal)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (ecdata->after < tstamp)
|
||||||
|
return;
|
||||||
|
|
||||||
switch (ecdata->format) {
|
switch (ecdata->format) {
|
||||||
case MU_CONFIG_FORMAT_MUTT_ALIAS:
|
case MU_CONFIG_FORMAT_MUTT_ALIAS:
|
||||||
each_contact_mutt_alias (email, name);
|
each_contact_mutt_alias (email, name);
|
||||||
|
@ -166,7 +173,9 @@ each_contact (const char *email, const char *name, gboolean personal,
|
||||||
|
|
||||||
|
|
||||||
static MuError
|
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 color, GError **err)
|
||||||
{
|
{
|
||||||
gboolean rv;
|
gboolean rv;
|
||||||
|
@ -174,8 +183,10 @@ run_cmd_cfind (const char* pattern, MuConfigFormat format,
|
||||||
size_t num;
|
size_t num;
|
||||||
ECData ecdata;
|
ECData ecdata;
|
||||||
|
|
||||||
ecdata.format = format;
|
ecdata.personal = personal;
|
||||||
ecdata.color = color;
|
ecdata.after = after;
|
||||||
|
ecdata.format = format;
|
||||||
|
ecdata.color = color;
|
||||||
|
|
||||||
contacts = mu_contacts_new (mu_runtime_path(MU_RUNTIME_PATH_CONTACTS));
|
contacts = mu_contacts_new (mu_runtime_path(MU_RUNTIME_PATH_CONTACTS));
|
||||||
if (!contacts) {
|
if (!contacts) {
|
||||||
|
@ -239,6 +250,10 @@ mu_cmd_cfind (MuConfig *opts, GError **err)
|
||||||
return MU_ERROR_IN_PARAMETERS;
|
return MU_ERROR_IN_PARAMETERS;
|
||||||
}
|
}
|
||||||
|
|
||||||
return run_cmd_cfind (opts->params[1], opts->format,
|
return run_cmd_cfind (opts->params[1],
|
||||||
!opts->nocolor, err);
|
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-address", 0, 0, G_OPTION_ARG_STRING_ARRAY,&MU_CONFIG.my_addresses,
|
||||||
"my e-mail address (regexp); can be used multiple times", NULL},
|
"my e-mail address (regexp); can be used multiple times", NULL},
|
||||||
{"autoupgrade", 0, 0, G_OPTION_ARG_NONE, &MU_CONFIG.autoupgrade,
|
{"autoupgrade", 0, 0, G_OPTION_ARG_NONE, &MU_CONFIG.autoupgrade,
|
||||||
"auto-upgrade the database with new mu versions (false)",
|
"auto-upgrade the database with new mu versions (false)", NULL},
|
||||||
NULL},
|
|
||||||
{"nocleanup", 0, 0, G_OPTION_ARG_NONE, &MU_CONFIG.nocleanup,
|
{"nocleanup", 0, 0, G_OPTION_ARG_NONE, &MU_CONFIG.nocleanup,
|
||||||
"don't clean up the database after indexing (false)", NULL},
|
"don't clean up the database after indexing (false)", NULL},
|
||||||
{"xbatchsize", 0, 0, G_OPTION_ARG_INT, &MU_CONFIG.xbatchsize,
|
{"xbatchsize", 0, 0, G_OPTION_ARG_INT, &MU_CONFIG.xbatchsize,
|
||||||
|
@ -273,6 +272,7 @@ set_group_cfind_defaults (void)
|
||||||
else
|
else
|
||||||
MU_CONFIG.format = get_output_format (MU_CONFIG.formatstr);
|
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,
|
{"format", 'o', 0, G_OPTION_ARG_STRING, &MU_CONFIG.formatstr,
|
||||||
"output format ('plain'(*), 'mutt', 'wanderlust',"
|
"output format ('plain'(*), 'mutt', 'wanderlust',"
|
||||||
"'org-contact', 'csv')", NULL},
|
"'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}
|
{NULL, 0, 0, 0, NULL, NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -136,6 +136,10 @@ struct _MuConfig {
|
||||||
gboolean terminator; /* add separator \f between
|
gboolean terminator; /* add separator \f between
|
||||||
* multiple messages in mu
|
* multiple messages in mu
|
||||||
* view */
|
* 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 */
|
/* output to a maildir with symlinks */
|
||||||
char *linksdir; /* maildir to output symlinks */
|
char *linksdir; /* maildir to output symlinks */
|
||||||
|
|
Loading…
Reference in New Issue