Add some explanation about NOTMUCH_BASE to setup_command.
authorCarl Worth <cworth@cworth.org>
Tue, 20 Oct 2009 17:07:11 +0000 (10:07 -0700)
committerCarl Worth <cworth@cworth.org>
Tue, 20 Oct 2009 17:09:17 +0000 (10:09 -0700)
Since we allow the user to enter a custom directory, we need to
let the user know how to make this persistent. Of course, a better
answer would be to take what the user entered and shove it into
a ~/.notmuch-config file or so, but for now this will have to do.

notmuch.c

index dac19d8955ec231bf9177df2f2e358adfd24b587..d35bda7263085f63ce644598e0c07a240ecbfb2e 100644 (file)
--- a/notmuch.c
+++ b/notmuch.c
@@ -285,7 +285,7 @@ int
 setup_command (int argc, char *argv[])
 {
     notmuch_database_t *notmuch;
-    char *mail_directory;
+    char *mail_directory, *default_path;
     int count;
     add_files_state_t add_files_state;
     double elapsed;
@@ -310,19 +310,32 @@ 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");
 
-    {
-       char *default_path = notmuch_database_default_path ();
-       printf ("Top-level mail directory [%s]: ", default_path);
-       free (default_path);
-       fflush (stdout);
-    }
+
+    default_path = notmuch_database_default_path ();
+    printf ("Top-level mail directory [%s]: ", default_path);
+    fflush (stdout);
 
     mail_directory = read_line ();
+    printf ("\n");
 
     if (mail_directory == NULL || strlen (mail_directory) == 0) {
        if (mail_directory)
            free (mail_directory);
-       mail_directory = notmuch_database_default_path ();
+       mail_directory = default_path;
+    } else {
+       /* XXX: Instead of telling the user to use an environment
+        * variable here, we should really be writing out a configuration
+        * file and loading that on the next run. */
+       if (strcmp (mail_directory, default_path)) {
+           printf ("Note: Since you are not using the default path, you will want to set\n"
+                   "the NOTMUCH_BASE environment variable to %s so that\n"
+                   "future calls to notmuch commands will know where to find your mail.\n",
+                   mail_directory);
+           printf ("For example, if you are using bash for your shell, add:\n\n");
+           printf ("\texport NOTMUCH_BASE=%s\n\n", mail_directory);
+           printf ("to your ~/.bashrc file.\n\n");
+       }
+       free (default_path);
     }
 
     notmuch = notmuch_database_create (mail_directory);