]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch.c
notmuch: Add support for a --help option.
[notmuch] / notmuch.c
index 87479f81056b53cef82859c61adb7794f19ecf79..3b743a903cf78ca4c48f60caef64eba5aee77f20 100644 (file)
--- a/notmuch.c
+++ b/notmuch.c
@@ -52,7 +52,7 @@ static const char search_terms_help[] =
     "\t\t\tto:<name-or-address>\n"
     "\t\t\tsubject:<word-or-quoted-phrase>\n"
     "\t\t\tattachment:<word>\n"
     "\t\t\tto:<name-or-address>\n"
     "\t\t\tsubject:<word-or-quoted-phrase>\n"
     "\t\t\tattachment:<word>\n"
-    "\t\t\ttag:<tag>\n"
+    "\t\t\ttag:<tag> (or is:<tag>)\n"
     "\t\t\tid:<message-id>\n"
     "\t\t\tthread:<thread-id>\n"
     "\n"
     "\t\t\tid:<message-id>\n"
     "\t\t\tthread:<thread-id>\n"
     "\n"
@@ -66,7 +66,7 @@ static const char search_terms_help[] =
     "\t\tthe subject of an email. Quoted phrases are supported when\n"
     "\t\tsearching with: subject:\"this is a phrase\".\n"
     "\n"
     "\t\tthe subject of an email. Quoted phrases are supported when\n"
     "\t\tsearching with: subject:\"this is a phrase\".\n"
     "\n"
-    "\t\tFor tag:, valid tag values include \"inbox\" and \"unread\"\n"
+    "\t\tFor tag: and is:, valid tag values include \"inbox\" and \"unread\"\n"
     "\t\tby default for new messages added by \"notmuch new\" as well\n"
     "\t\tas any other tag values added manually with \"notmuch tag\".\n"
     "\n"
     "\t\tby default for new messages added by \"notmuch new\" as well\n"
     "\t\tas any other tag values added manually with \"notmuch tag\".\n"
     "\n"
@@ -157,6 +157,11 @@ command_t commands[] = {
       "\n"
       "\t\tSupported options for search include:\n"
       "\n"
       "\n"
       "\t\tSupported options for search include:\n"
       "\n"
+      "\t\t--format=(json|text)\n"
+      "\n"
+      "\t\t\tPresents the results in either JSON or\n"
+      "\t\t\tplain-text (default)\n"
+      "\n"
       "\t\t--sort=(newest-first|oldest-first)\n"
       "\n"
       "\t\t\tPresent results in either chronological order\n"
       "\t\t--sort=(newest-first|oldest-first)\n"
       "\n"
       "\t\t\tPresent results in either chronological order\n"
@@ -181,13 +186,23 @@ command_t commands[] = {
       "\t\t\tall messages in the same thread as any matched\n"
       "\t\t\tmessage will be displayed.\n"
       "\n"
       "\t\t\tall messages in the same thread as any matched\n"
       "\t\t\tmessage will be displayed.\n"
       "\n"
-      "\t\tThe output format is plain-text, with all text-content\n"
-      "\t\tMIME parts decoded. Various components in the output,\n"
-      "\t\t('message', 'header', 'body', 'attachment', and MIME 'part')\n"
-      "\t\tare delimited by easily-parsed markers. Each marker consists\n"
-      "\t\tof a Control-L character (ASCII decimal 12), the name of\n"
-      "\t\tthe marker, and then either an opening or closing brace,\n"
-      "\t\t'{' or '}' to either open or close the component.\n"
+      "\t\t--format=(json|text)\n"
+      "\n"
+      "\t\t\ttext\t(default)\n"
+      "\n"
+      "\t\t\tThe plain-text has all text-content MIME parts decoded.\n"
+      "\t\t\tVarious components in the output, ('message', 'header',\n"
+      "\t\t\t'body', 'attachment', and MIME 'part') are delimited by\n"
+      "\t\t\teasily-parsed markers. Each marker consists of a Control-L\n"
+      "\t\t\tcharacter (ASCII decimal 12), the name of the marker, and\n"
+      "\t\t\tthen either an opening or closing brace, '{' or '}' to\n"
+      "\t\t\teither open or close the component.\n"
+      "\n"
+      "\t\t\tjson\n"
+      "\n"
+      "\t\t\tFormat output as Javascript Object Notation (JSON).\n"
+      "\t\t\tJSON output always includes all messages in a matching,\n"
+      "\t\t\tthread i.e. '--output=json' implies '--entire-thread'\n"
       "\n"
       "\t\tA common use of \"notmuch show\" is to display a single\n"
       "\t\tthread of email messages. For this, use a search term of\n"
       "\n"
       "\t\tA common use of \"notmuch show\" is to display a single\n"
       "\t\tthread of email messages. For this, use a search term of\n"
@@ -292,7 +307,9 @@ usage (FILE *out)
     command_t *command;
     unsigned int i;
 
     command_t *command;
     unsigned int i;
 
-    fprintf (out, "Usage: notmuch <command> [args...]\n");
+    fprintf (out,
+            "Usage: notmuch --help\n"
+            "       notmuch <command> [args...]\n");
     fprintf (out, "\n");
     fprintf (out, "Where <command> and [args...] are as follows:\n");
     fprintf (out, "\n");
     fprintf (out, "\n");
     fprintf (out, "Where <command> and [args...] are as follows:\n");
     fprintf (out, "\n");
@@ -442,6 +459,9 @@ main (int argc, char *argv[])
     if (argc == 1)
        return notmuch (local);
 
     if (argc == 1)
        return notmuch (local);
 
+    if (STRNCMP_LITERAL (argv[1], "--help") == 0)
+       return notmuch_help_command (NULL, 0, NULL);
+
     for (i = 0; i < ARRAY_SIZE (commands); i++) {
        command = &commands[i];
 
     for (i = 0; i < ARRAY_SIZE (commands); i++) {
        command = &commands[i];