aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Worth <cworth@cworth.org>2009-10-25 09:14:16 -0700
committerCarl Worth <cworth@cworth.org>2009-10-25 09:14:16 -0700
commita8ae2cd214bca3c89b0f9a5566c227459eec40f5 (patch)
treeb7ebb76569a7c7cd3eee44d6746e2a3a42d26748
parent32ecfe72a1da9002b8617a8575ee1290c8fd3c6f (diff)
Move read-only-archive hint from "notmuch setup" to "notmuch new"
The "notmuch setup" output was getting overwhelmingly verbose. Also, some people might not have a lot of mail, so might never need this optimization. It's much better to move the hint to the time when the user could actually benefit from it, (it's easy to detect that "notmuch new" took more than 1 second, and we know if there are any read-only directories there or not).
-rw-r--r--notmuch.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/notmuch.c b/notmuch.c
index 4ca8c1c..f16192f 100644
--- a/notmuch.c
+++ b/notmuch.c
@@ -55,6 +55,7 @@ typedef struct command {
typedef struct {
int ignore_read_only_directories;
+ int saw_read_only_directory;
int total_files;
int processed_files;
@@ -169,6 +170,7 @@ add_files_recursive (notmuch_database_t *notmuch,
if (state->ignore_read_only_directories &&
(st->st_mode & S_IWUSR) == 0)
{
+ state->saw_read_only_directory = TRUE;
goto DONE;
}
@@ -463,6 +465,7 @@ setup_command (int argc, char *argv[])
printf ("Next, we'll inspect the messages and create a database of threads:\n");
add_files_state.ignore_read_only_directories = FALSE;
+ add_files_state.saw_read_only_directory = FALSE;
add_files_state.total_files = count;
add_files_state.processed_files = 0;
add_files_state.added_messages = 0;
@@ -493,10 +496,6 @@ setup_command (int argc, char *argv[])
printf ("When new mail is delivered to %s in the future,\n"
"run \"notmuch new\" to add it to the database.\n\n",
mail_directory);
- printf ("And if you have any sub-directories that are archives (that is,\n"
- "they will never receive new mail), marking these directores as\n"
- "read-only (chmod u-w /path/to/dir) will make \"notmuch new\"\n"
- "much more efficient (it won't even look in those directories).\n\n");
if (ret) {
printf ("Note: At least one error was encountered: %s\n",
@@ -531,6 +530,7 @@ new_command (int argc, char *argv[])
mail_directory = notmuch_database_get_path (notmuch);
add_files_state.ignore_read_only_directories = TRUE;
+ add_files_state.saw_read_only_directory = FALSE;
add_files_state.total_files = 0;
add_files_state.processed_files = 0;
add_files_state.added_messages = 0;
@@ -562,8 +562,15 @@ new_command (int argc, char *argv[])
printf ("No new mail---and that's not much.\n");
}
+ if (elapsed > 1 && ! add_files_state.saw_read_only_directory) {
+ printf ("\nTip: If you have any sub-directories that are archives (that is,\n"
+ "they will never receive new mail), marking these directores as\n"
+ "read-only (chmod u-w /path/to/dir) will make \"notmuch new\"\n"
+ "much more efficient (it won't even look in those directories).\n");
+ }
+
if (ret) {
- printf ("Note: At least one error was encountered: %s\n",
+ printf ("\nNote: At least one error was encountered: %s\n",
notmuch_status_to_string (ret));
}