X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=notmuch-new.c;h=b740ee2b8c29d0e09d65f19de92693f2bcb448b3;hp=55c3dc1d8d75c8873fb64308d2e72b5d63cb661e;hb=c340c1bd1140c0a1b7e0f24ef3ebac806f5fc3e6;hpb=ccf2e0cc4211c276da1db43cdca7ee11018c391d diff --git a/notmuch-new.c b/notmuch-new.c index 55c3dc1d..b740ee2b 100644 --- a/notmuch-new.c +++ b/notmuch-new.c @@ -618,22 +618,26 @@ count_files (const char *path, int *count) static void upgrade_print_progress (void *closure, - unsigned int count, - unsigned int total) + double progress) { add_files_state_t *state = closure; - struct timeval tv_now; - double elapsed_overall, rate_overall, time_remaining; - gettimeofday (&tv_now, NULL); + printf ("Upgrading database: %.2f%% complete", progress * 100.0); - elapsed_overall = notmuch_time_elapsed (state->tv_start, tv_now); - rate_overall = count / elapsed_overall; - time_remaining = ((total - count) / rate_overall); + if (progress > 0) { + struct timeval tv_now; + double elapsed, time_remaining; + + gettimeofday (&tv_now, NULL); + + elapsed = notmuch_time_elapsed (state->tv_start, tv_now); + time_remaining = (elapsed / progress) * (1.0 - progress); + printf (" ("); + notmuch_time_print_formatted_seconds (time_remaining); + printf (" remaining)"); + } - printf ("Upgraded %d of %d messages (", count, total); - notmuch_time_print_formatted_seconds (time_remaining); - printf (" remaining). \r"); + printf (". \r"); fflush (stdout); }