notmuch new: Print counts of deleted and renamed messages.

It's nice to be able to see a report indicating that the recently
added support for detecting file rename and deletion is working.
This commit is contained in:
Carl Worth 2010-01-06 10:07:49 -08:00
parent 4b418343f6
commit 9d4d7963a1

View file

@ -567,6 +567,8 @@ notmuch_new_command (void *ctx, int argc, char *argv[])
char *dot_notmuch_path; char *dot_notmuch_path;
struct sigaction action; struct sigaction action;
_filename_node_t *f; _filename_node_t *f;
int renamed_files, removed_files;
notmuch_status_t status;
int i; int i;
add_files_state.verbose = 0; add_files_state.verbose = 0;
@ -628,8 +630,14 @@ notmuch_new_command (void *ctx, int argc, char *argv[])
ret = add_files (notmuch, db_path, &add_files_state); ret = add_files (notmuch, db_path, &add_files_state);
removed_files = 0;
renamed_files = 0;
for (f = add_files_state.removed_files->head; f; f = f->next) { for (f = add_files_state.removed_files->head; f; f = f->next) {
notmuch_database_remove_message (notmuch, f->filename); status = notmuch_database_remove_message (notmuch, f->filename);
if (status == NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID)
renamed_files++;
else
removed_files++;
} }
for (f = add_files_state.removed_directories->head; f; f = f->next) { for (f = add_files_state.removed_directories->head; f; f = f->next) {
@ -646,7 +654,11 @@ notmuch_new_command (void *ctx, int argc, char *argv[])
absolute = talloc_asprintf (ctx, "%s/%s", f->filename, absolute = talloc_asprintf (ctx, "%s/%s", f->filename,
notmuch_filenames_get (files)); notmuch_filenames_get (files));
notmuch_database_remove_message (notmuch, absolute); status = notmuch_database_remove_message (notmuch, absolute);
if (status == NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID)
renamed_files++;
else
removed_files++;
talloc_free (absolute); talloc_free (absolute);
} }
@ -659,6 +671,7 @@ notmuch_new_command (void *ctx, int argc, char *argv[])
gettimeofday (&tv_now, NULL); gettimeofday (&tv_now, NULL);
elapsed = notmuch_time_elapsed (add_files_state.tv_start, elapsed = notmuch_time_elapsed (add_files_state.tv_start,
tv_now); tv_now);
if (add_files_state.processed_files) { if (add_files_state.processed_files) {
printf ("Processed %d %s in ", add_files_state.processed_files, printf ("Processed %d %s in ", add_files_state.processed_files,
add_files_state.processed_files == 1 ? add_files_state.processed_files == 1 ?
@ -671,15 +684,30 @@ notmuch_new_command (void *ctx, int argc, char *argv[])
printf (". \n"); printf (". \n");
} }
} }
if (add_files_state.added_messages) { if (add_files_state.added_messages) {
printf ("Added %d new %s to the database.\n", printf ("Added %d new %s to the database.",
add_files_state.added_messages, add_files_state.added_messages,
add_files_state.added_messages == 1 ? add_files_state.added_messages == 1 ?
"message" : "messages"); "message" : "messages");
} else { } else {
printf ("No new mail.\n"); printf ("No new mail.");
} }
if (removed_files) {
printf (" Removed %d %s.",
removed_files,
removed_files == 1 ? "message" : "messages");
}
if (renamed_files) {
printf (" Detected %d file %s.",
renamed_files,
renamed_files == 1 ? "rename" : "renames");
}
printf ("\n");
if (ret) { if (ret) {
printf ("\nNote: At least one error was encountered: %s\n", printf ("\nNote: At least one error was encountered: %s\n",
notmuch_status_to_string (ret)); notmuch_status_to_string (ret));