From 67a0ee2ebb90229d92a5e9a7c676ff1a95fc1008 Mon Sep 17 00:00:00 2001
From: Carl Worth <cworth@cworth.org>
Date: Tue, 20 Oct 2009 10:07:11 -0700
Subject: [PATCH] Add some explanation about NOTMUCH_BASE to setup_command.

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 | 29 +++++++++++++++++++++--------
 1 file changed, 21 insertions(+), 8 deletions(-)

diff --git a/notmuch.c b/notmuch.c
index dac19d89..d35bda72 100644
--- 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);
-- 
2.45.2