X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=notmuch.c;h=dac19d8955ec231bf9177df2f2e358adfd24b587;hp=01000c2a823c8edc815addca4534e2a8b44ff962;hb=55c8ee9a862f8f25be84adb591564b3777d88135;hpb=ad784f38ce30d39b058325baf050eb784fb9a02e diff --git a/notmuch.c b/notmuch.c index 01000c2a..dac19d89 100644 --- a/notmuch.c +++ b/notmuch.c @@ -310,25 +310,19 @@ setup_command (int argc, char *argv[]) "such as mb2md. In that case, press Control-C now and run notmuch again\n" "once the conversion is complete.\n\n"); - printf ("Top-level mail directory [~/mail]: "); - fflush (stdout); + { + char *default_path = notmuch_database_default_path (); + printf ("Top-level mail directory [%s]: ", default_path); + free (default_path); + fflush (stdout); + } mail_directory = read_line (); if (mail_directory == NULL || strlen (mail_directory) == 0) { - char *home; - if (mail_directory) free (mail_directory); - - home = getenv ("HOME"); - if (!home) { - fprintf (stderr, "Error: No mail directory provided HOME environment variable is not set.\n"); - fprintf (stderr, "Cowardly refusing to just guess where your mail might be.\n"); - exit (1); - } - - mail_directory = g_strdup_printf ("%s/mail", home); + mail_directory = notmuch_database_default_path (); } notmuch = notmuch_database_create (mail_directory); @@ -379,19 +373,49 @@ search_command (int argc, char *argv[]) int show_command (int argc, char *argv[]) { - fprintf (stderr, "Error: show-thread is not implemented yet.\n"); + fprintf (stderr, "Error: show is not implemented yet.\n"); + return 1; +} + +int +dump_command (int argc, char *argv[]) +{ + fprintf (stderr, "Error: dump is not implemented yet.\n"); + return 1; +} + +int +restore_command (int argc, char *argv[]) +{ + fprintf (stderr, "Error: restore is not implemented yet.\n"); return 1; } command_t commands[] = { { "setup", setup_command, - "Interactively setup notmuch for first use (no arguments).\n" + "Interactively setup notmuch for first use.\n" "\t\tInvoking notmuch with no command argument will run setup if\n" - "\t\the setup command has not previously been completed." }, + "\t\tthe setup command has not previously been completed." }, { "search", search_command, - "Search for threads matching the given search terms." }, + " [...]\n\n" + "\t\tSearch for threads matching the given search terms.\n" + "\t\tOnce we actually implement search we'll document the\n" + "\t\tsyntax here." }, { "show", show_command, - "Show the thread with the given thread ID (see 'search')." } + "\n\n" + "\t\tShow the thread with the given thread ID (see 'search')." }, + { "dump", dump_command, + "[]\n\n" + "\t\tCreate a plain-text dump of the tags for each message\n" + "\t\twriting to the given filename, if any, or to stdout.\n" + "\t\tThese tags are the only data in the notmuch database\n" + "\t\tthat can't be recreated from the messages themselves.\n" + "\t\tThe output of notmuch dump is therefore the only\n" + "\t\tcritical thing to backup (and much more friendly to\n" + "\t\tincremental backup than the native database files." }, + { "restore", restore_command, + "\n\n" + "\t\tRestore the tags from the given dump file (see 'dump')." } }; void @@ -402,7 +426,7 @@ usage (void) fprintf (stderr, "Usage: notmuch [args...]\n"); fprintf (stderr, "\n"); - fprintf (stderr, "Where is one of the following:\n"); + fprintf (stderr, "Where and [args...] are as follows:\n"); fprintf (stderr, "\n"); for (i = 0; i < ARRAY_SIZE (commands); i++) { @@ -428,7 +452,15 @@ main (int argc, char *argv[]) return (command->function) (argc - 2, &argv[2]); } - fprintf (stderr, "Error: Unknown command '%s'\n\n", argv[1]); + /* Don't complain about "help" being an unknown command when we're + about to provide exactly what's wanted anyway. */ + if (strcmp (argv[1], "help") == 0 || + strcmp (argv[1], "--help") == 0) + { + fprintf (stderr, "The notmuch mail system.\n\n"); + } else { + fprintf (stderr, "Error: Unknown command '%s'\n\n", argv[1]); + } usage (); exit (1);