]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch.c
notmuch: Add a 'part' subcommand
[notmuch] / notmuch.c
index d9846ce791c1d6e5d4ae8bec8c9a51b928662f50..6ebe36dbc64ab9d167af8631f5e16614eb6b287f 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"
@@ -145,11 +145,6 @@ command_t commands[] = {
       "\t\t\tVerbose operation. Shows paths of message files as\n"
       "\t\t\tthey are being indexed.\n"
       "\n"
       "\t\t\tVerbose operation. Shows paths of message files as\n"
       "\t\t\tthey are being indexed.\n"
       "\n"
-      "\t\tNote: \"notmuch new\" runs (other than the first run) will\n"
-      "\t\tskip any read-only directories, so you can use that to mark\n"
-      "\t\tdirectories that will not receive any new mail (and make\n"
-      "\t\t\"notmuch new\" even faster).\n"
-      "\n"
       "\t\tInvoking notmuch with no command argument will run new if\n"
       "\t\tthe setup command has previously been completed, but new has\n"
       "\t\tnot previously been run." },
       "\t\tInvoking notmuch with no command argument will run new if\n"
       "\t\tthe setup command has previously been completed, but new has\n"
       "\t\tnot previously been run." },
@@ -162,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"
@@ -177,13 +177,32 @@ command_t commands[] = {
       "\t\t(all replies to a particular message appear immediately\n"
       "\t\tafter that message in date order).\n"
       "\n"
       "\t\t(all replies to a particular message appear immediately\n"
       "\t\tafter that message in date order).\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\tSupported options for show include:\n"
+      "\n"
+      "\t\t--entire-thread\n"
+      "\n"
+      "\t\t\tBy default only those messages that match the\n"
+      "\t\t\tsearch terms will be displayed. With this option,\n"
+      "\t\t\tall messages in the same thread as any matched\n"
+      "\t\t\tmessage will be displayed.\n"
+      "\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"
@@ -275,6 +294,17 @@ command_t commands[] = {
       "\t\tcontain tags only from messages that match the search-term(s).\n"
       "\n"
       "\t\tIn both cases the list will be alphabetically sorted." },
       "\t\tcontain tags only from messages that match the search-term(s).\n"
       "\n"
       "\t\tIn both cases the list will be alphabetically sorted." },
+    { "part", notmuch_part_command,
+      "--part=<num> <search-terms>",
+      "\t\tOutput a single MIME part of a message.",
+      "\t\tA single decoded MIME part, with no encoding or framing,\n"
+      "\t\tis output to stdout. The search terms must match only a single\n"
+      "\t\tmessage, otherwise this command will fail.\n"
+      "\n"
+      "\t\tThe part number should match the part \"id\" field output\n"
+      "\t\tby the \"--format=json\" option of \"notmuch show\". If the\n"
+      "\t\tmessage specified by the search terms does not include a\n"
+      "\t\tpart with the specified \"id\" there will be no output." },
     { "help", notmuch_help_command,
       "[<command>]",
       "\t\tThis message, or more detailed help for the named command.",
     { "help", notmuch_help_command,
       "[<command>]",
       "\t\tThis message, or more detailed help for the named command.",