search: Support --format-version

This commit is contained in:
Austin Clements 2012-12-15 22:17:24 -05:00 committed by David Bremner
parent 1c6195b9e3
commit 3152cf4b12
2 changed files with 23 additions and 0 deletions

View file

@ -30,6 +30,15 @@ include
Presents the results in either JSON, S-Expressions or plain-text (default). Presents the results in either JSON, S-Expressions or plain-text (default).
.RE .RE
.RS 4
.TP 4
.BR \-\-format-version=N
Use the specified structured output format version. This is intended
for programs that invoke \fBnotmuch\fR(1) internally. If omitted, the
latest supported version will be used.
.RE
.RS 4 .RS 4
.TP 4 .TP 4
.B \-\-output=(summary|threads|messages|files|tags) .B \-\-output=(summary|threads|messages|files|tags)
@ -126,6 +135,17 @@ In this case all matching threads are returned but the "match count"
is the number of matching non-excluded messages in the thread. is the number of matching non-excluded messages in the thread.
.RE .RE
.SH EXIT STATUS
This command supports the following special exit status codes
.TP
.B 20
The requested format version is too old.
.TP
.B 21
The requested format version is too new.
.SH SEE ALSO .SH SEE ALSO
\fBnotmuch\fR(1), \fBnotmuch-config\fR(1), \fBnotmuch-count\fR(1), \fBnotmuch\fR(1), \fBnotmuch-config\fR(1), \fBnotmuch-count\fR(1),

View file

@ -318,6 +318,7 @@ notmuch_search_command (void *ctx, int argc, char *argv[])
{ "sexp", NOTMUCH_FORMAT_SEXP }, { "sexp", NOTMUCH_FORMAT_SEXP },
{ "text", NOTMUCH_FORMAT_TEXT }, { "text", NOTMUCH_FORMAT_TEXT },
{ 0, 0 } } }, { 0, 0 } } },
{ NOTMUCH_OPT_INT, &notmuch_format_version, "format-version", 0, 0 },
{ NOTMUCH_OPT_KEYWORD, &output, "output", 'o', { NOTMUCH_OPT_KEYWORD, &output, "output", 'o',
(notmuch_keyword_t []){ { "summary", OUTPUT_SUMMARY }, (notmuch_keyword_t []){ { "summary", OUTPUT_SUMMARY },
{ "threads", OUTPUT_THREADS }, { "threads", OUTPUT_THREADS },
@ -356,6 +357,8 @@ notmuch_search_command (void *ctx, int argc, char *argv[])
INTERNAL_ERROR("no output format selected"); INTERNAL_ERROR("no output format selected");
} }
notmuch_exit_if_unsupported_format ();
config = notmuch_config_open (ctx, NULL, NULL); config = notmuch_config_open (ctx, NULL, NULL);
if (config == NULL) if (config == NULL)
return 1; return 1;