- notmuch_database_t *notmuch = NULL;
- char *default_path, *mail_directory = NULL;
- size_t line_size;
- int count;
- add_files_state_t add_files_state;
- double elapsed;
- struct timeval tv_now;
- notmuch_status_t ret = NOTMUCH_STATUS_SUCCESS;
-
- printf ("Welcome to notmuch!\n\n");
-
- printf ("The goal of notmuch is to help you manage and search your collection of\n"
- "email, and to efficiently keep up with the flow of email as it comes in.\n\n");
-
- printf ("Notmuch needs to know the top-level directory of your email archive,\n"
- "(where you already have mail stored and where messages will be delivered\n"
- "in the future). This directory can contain any number of sub-directories\n"
- "and primarily just files with indvidual email messages (eg. maildir or mh\n"
- "archives are perfect). If there are other, non-email files (such as\n"
- "indexes maintained by other email programs) then notmuch will do its\n"
- "best to detect those and ignore them.\n\n");
-
- printf ("Mail storage that uses mbox format, (where one mbox file contains many\n"
- "messages), will not work with notmuch. If that's how your mail is currently\n"
- "stored, we recommend you first convert it to maildir format with a utility\n"
- "such as mb2md. In that case, press Control-C now and run notmuch again\n"
- "once the conversion is complete.\n\n");
-
-
- default_path = notmuch_database_default_path ();
- printf ("Top-level mail directory [%s]: ", default_path);
- fflush (stdout);
-
- getline (&mail_directory, &line_size, stdin);
- chomp_newline (mail_directory);
-
- printf ("\n");
-
- if (mail_directory == NULL || strlen (mail_directory) == 0) {
- if (mail_directory)
- free (mail_directory);
- 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);
+ printf (
+ "Welcome to notmuch!\n\n"
+
+ "The goal of notmuch is to help you manage and search your collection of\n"
+ "email, and to efficiently keep up with the flow of email as it comes in.\n\n"
+
+ "Notmuch needs to know a few things about you such as your name and email\n"
+ "address, as well as the directory that contains your email. This is where\n"
+ "you already have mail stored and where messages will be delivered in the\n"
+ "future. This directory can contain any number of sub-directories. Regular\n"
+ "files in these directories should be individual email messages. If there\n"
+ "are other, non-email files (such as indexes maintained by other email\n"
+ "programs) then notmuch will do its best to detect those and ignore them.\n\n"
+
+ "If you already have your email being delivered to directories in either\n"
+ "maildir or mh format, then that's perfect. Mail storage that uses mbox\n"
+ "format, (where one mbox file contains many messages), will not work with\n"
+ "notmuch. If that's how your mail is currently stored, we recommend you\n"
+ "first convert it to maildir format with a utility such as mb2md. You can\n"
+ "continue configuring notmuch now, but be sure to complete the conversion\n"
+ "before you run \"notmuch new\" for the first time.\n\n");
+}
+
+static void
+welcome_message_post_setup (void)
+{
+ printf ("\n"
+ "Notmuch is now configured, and the configuration settings are saved in\n"
+ "a file in your home directory named .notmuch-config . If you'd like to\n"
+ "change the configuration in the future, you can either edit that file\n"
+ "directly or run \"notmuch setup\". To choose an alternate configuration\n"
+ "location, set ${NOTMUCH_CONFIG}.\n\n"
+
+ "The next step is to run \"notmuch new\" which will create a database\n"
+ "that indexes all of your mail. Depending on the amount of mail you have\n"
+ "the initial indexing process can take a long time, so expect that.\n"
+ "Also, the resulting database will require roughly the same amount of\n"
+ "storage space as your current collection of email. So please ensure you\n"
+ "have sufficient storage space available now.\n\n");
+}
+
+static void
+print_tag_list (notmuch_config_values_t *tags)
+{
+ bool first = false;
+
+ for (;
+ notmuch_config_values_valid (tags);
+ notmuch_config_values_move_to_next (tags)) {
+ if (! first)
+ printf (" ");
+ first = false;
+ printf ("%s", notmuch_config_values_get (tags));