aboutsummaryrefslogtreecommitdiffhomepage
path: root/notmuch.c
diff options
context:
space:
mode:
authorGravatar Carl Worth <cworth@cworth.org>2009-10-19 18:30:48 -0700
committerGravatar Carl Worth <cworth@cworth.org>2009-10-19 18:30:48 -0700
commit22691064666c03c5e76bc787395bfe586929f4cc (patch)
tree046b2243afdf4a868e69dcdfb29de3af7f45188a /notmuch.c
parent371091139abb00e0eb6b17cd19311e2a30fd7470 (diff)
notmuch: Reword the progress report slightly.
I noticed this style during a recent Debian install and I liked how much less busy it is compared to what we had before, (while still telling the user everything she might want).
Diffstat (limited to 'notmuch.c')
-rw-r--r--notmuch.c49
1 files changed, 18 insertions, 31 deletions
diff --git a/notmuch.c b/notmuch.c
index 5853fe55..91ea3451 100644
--- a/notmuch.c
+++ b/notmuch.c
@@ -79,11 +79,9 @@ read_line (void)
}
typedef struct {
- int messages_total;
+ int total_messages;
int count;
- int count_last;
struct timeval tv_start;
- struct timeval tv_last;
} add_files_state_t;
/* Compute the number of seconds elapsed from start to end. */
@@ -102,47 +100,37 @@ print_formatted_seconds (double seconds)
if (seconds > 3600) {
hours = (int) seconds / 3600;
- printf ("%d:", hours);
+ printf ("%dh ", hours);
seconds -= hours * 3600;
}
- if (seconds > 60)
+ if (seconds > 60) {
minutes = (int) seconds / 60;
- else
- minutes = 0;
-
- printf ("%02d:", minutes);
- seconds -= minutes * 60;
+ printf ("%dm ", minutes);
+ seconds -= minutes * 60;
+ }
- printf ("%02d", (int) seconds);
+ printf ("%02ds", (int) seconds);
}
void
add_files_print_progress (add_files_state_t *state)
{
struct timeval tv_now;
- double ratio_complete;
- double elapsed_current, rate_current;
- double elapsed_overall;
+ double elapsed_overall, rate_overall;
gettimeofday (&tv_now, NULL);
- ratio_complete = (double) state->count / state->messages_total;
- elapsed_current = tv_elapsed (state->tv_last, tv_now);
- rate_current = (state->count - state->count_last) / elapsed_current;
elapsed_overall = tv_elapsed (state->tv_start, tv_now);
+ rate_overall = (state->count) / elapsed_overall;
- printf ("Added %d messages at %d messages/sec. ",
- state->count, (int) rate_current);
- print_formatted_seconds (elapsed_overall);
- printf ("/");
- print_formatted_seconds (elapsed_overall / ratio_complete);
- printf (" elapsed (%.2f%%). \r", 100 * ratio_complete);
+ printf ("Added %d of %d messages (",
+ state->count, state->total_messages);
+ print_formatted_seconds ((state->total_messages - state->count) /
+ rate_overall);
+ printf (" remaining).\r");
fflush (stdout);
-
- state->tv_last = tv_now;
- state->count_last = state->count;
}
/* Recursively find all regular files in 'path' and add them to the
@@ -295,6 +283,7 @@ setup_command (int argc, char *argv[])
int count;
add_files_state_t add_files_state;
double elapsed;
+ struct timeval tv_now;
printf ("Welcome to notmuch!\n\n");
@@ -353,17 +342,15 @@ setup_command (int argc, char *argv[])
printf ("Next, we'll inspect the messages and create a database of threads:\n");
- add_files_state.messages_total = count;
+ add_files_state.total_messages = count;
add_files_state.count = 0;
- add_files_state.count_last = 0;
gettimeofday (&add_files_state.tv_start, NULL);
- add_files_state.tv_last = add_files_state.tv_start;
add_files (notmuch, mail_directory, &add_files_state);
- gettimeofday (&add_files_state.tv_last, NULL);
+ gettimeofday (&tv_now, NULL);
elapsed = tv_elapsed (add_files_state.tv_start,
- add_files_state.tv_last);
+ tv_now);
printf ("Added %d total messages in ", add_files_state.count);
print_formatted_seconds (elapsed);
printf (" (%d messages/sec.). \n", (int) (add_files_state.count / elapsed));