From 8bf7854ab1b15c0ff8c2c7a5afc0789d91f6b5cd Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Sun, 19 Jan 2014 22:32:27 +0200 Subject: [PATCH] [PATCH 6/7] cli: add --quiet option to notmuch new --- 66/b08ca9634107209f85f61e2eb4a964b7085633 | 206 ++++++++++++++++++++++ 1 file changed, 206 insertions(+) create mode 100644 66/b08ca9634107209f85f61e2eb4a964b7085633 diff --git a/66/b08ca9634107209f85f61e2eb4a964b7085633 b/66/b08ca9634107209f85f61e2eb4a964b7085633 new file mode 100644 index 000000000..edaa9ef7a --- /dev/null +++ b/66/b08ca9634107209f85f61e2eb4a964b7085633 @@ -0,0 +1,206 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by olra.theworths.org (Postfix) with ESMTP id 13653431FC0 + for ; Sun, 19 Jan 2014 12:33:20 -0800 (PST) +X-Virus-Scanned: Debian amavisd-new at olra.theworths.org +X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "References" +X-Spam-Flag: NO +X-Spam-Score: -0.7 +X-Spam-Level: +X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5 + tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled +Received: from olra.theworths.org ([127.0.0.1]) + by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id rzCcvvGjV2VT for ; + Sun, 19 Jan 2014 12:33:14 -0800 (PST) +Received: from mail-ee0-f53.google.com (mail-ee0-f53.google.com + [74.125.83.53]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client + certificate requested) by olra.theworths.org (Postfix) with ESMTPS id + B6A21431FC2 for ; Sun, 19 Jan 2014 12:32:52 -0800 + (PST) +Received: by mail-ee0-f53.google.com with SMTP id t10so3032743eei.26 + for ; Sun, 19 Jan 2014 12:32:51 -0800 (PST) +X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=1e100.net; s=20130820; + h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to + :references:in-reply-to:references; + bh=D6+aP1uMxK+c/ZCQHQ9Eh2ohBxFQLkC73CpVyS+ltqY=; + b=PyHRhlKtzJ9GIjYOEkZfmP71jzfSGJ4qgKCBPd9aVCF9kguXY0Fnhtiw3hkRTOF9nD + jb0yr9SpePuqkVNVeZfp8we6A+79ACpecOP5CbtRcO4f0FJmhDzbrKtA8+fdwktVpMAN + nuGeQnuo8pKbH7oRkXHzqz7Aset+4t936Y164QE68a+I63xPLtPyiWh4n5/OwvFmcq1f + wwxSwlTPqyYyfs2gW9RGKvCH5eWArvCKHR2QbwD3axwy/dG2V2gY29h5gEcJ6op56woK + q+wJ7MZK00IuWXANMV/a8WVyEA6ICMrQsVfYAf7mYNPrCISwsYueiYhUtlvriHGDWdu6 + RtAQ== +X-Gm-Message-State: + ALoCoQluG5CPOvlfLZtvpjLunBlKofP5cwr3pioIxaNK3qFMAlT/fkatUC4dYFnrwTa4+F2doidd +X-Received: by 10.14.2.73 with SMTP id 49mr14223995eee.15.1390163571572; + Sun, 19 Jan 2014 12:32:51 -0800 (PST) +Received: from localhost (dsl-hkibrasgw2-58c36f-91.dhcp.inet.fi. + [88.195.111.91]) + by mx.google.com with ESMTPSA id v1sm46527413eef.9.2014.01.19.12.32.50 + for + (version=TLSv1.2 cipher=RC4-SHA bits=128/128); + Sun, 19 Jan 2014 12:32:50 -0800 (PST) +From: Jani Nikula +To: notmuch@notmuchmail.org +Subject: [PATCH 6/7] cli: add --quiet option to notmuch new +Date: Sun, 19 Jan 2014 22:32:27 +0200 +Message-Id: + <276371280dfbf8d98a9970b68910e1c030769641.1390163335.git.jani@nikula.org> +X-Mailer: git-send-email 1.8.5.2 +In-Reply-To: +References: +In-Reply-To: +References: +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.13 +Precedence: list +List-Id: "Use and development of the notmuch mail system." + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +X-List-Received-Date: Sun, 19 Jan 2014 20:33:20 -0000 + +Tie it to --verbose (resulting in verbosity levels of quiet, normal, +and verbose) but leave --debug orthogonal. Do some drive-by cleaning +while at it. +--- + notmuch-new.c | 47 ++++++++++++++++++++++++++++++++--------------- + 1 file changed, 32 insertions(+), 15 deletions(-) + +diff --git a/notmuch-new.c b/notmuch-new.c +index c443181..cd74489 100644 +--- a/notmuch-new.c ++++ b/notmuch-new.c +@@ -34,9 +34,15 @@ typedef struct _filename_list { + _filename_node_t **tail; + } _filename_list_t; + ++enum verbosity { ++ VERBOSITY_QUIET, ++ VERBOSITY_NORMAL, ++ VERBOSITY_VERBOSE, ++}; ++ + typedef struct { + int output_is_a_tty; +- notmuch_bool_t verbose; ++ enum verbosity verbosity; + notmuch_bool_t debug; + const char **new_tags; + size_t new_tags_length; +@@ -566,13 +572,11 @@ add_files (notmuch_database_t *notmuch, + + state->processed_files++; + +- if (state->verbose) { ++ if (state->verbosity >= VERBOSITY_VERBOSE) { + if (state->output_is_a_tty) + printf("\r\033[K"); + +- printf ("%i/%i: %s", +- state->processed_files, +- state->total_files, ++ printf ("%i/%i: %s", state->processed_files, state->total_files, + next); + + putchar((state->output_is_a_tty) ? '\r' : '\n'); +@@ -741,7 +745,7 @@ count_files (const char *path, int *count, add_files_state_t *state) + entry_type = dirent_type (path, entry); + if (entry_type == S_IFREG) { + *count = *count + 1; +- if (*count % 1000 == 0) { ++ if (*count % 1000 == 0 && state->verbosity >= VERBOSITY_NORMAL) { + printf ("Found %d files so far.\r", *count); + fflush (stdout); + } +@@ -917,13 +921,15 @@ notmuch_new_command (notmuch_config_t *config, int argc, char *argv[]) + int i; + notmuch_bool_t timer_is_active = FALSE; + notmuch_bool_t no_hooks = FALSE; ++ notmuch_bool_t quiet = FALSE, verbose = FALSE; + +- add_files_state.verbose = FALSE; ++ add_files_state.verbosity = VERBOSITY_NORMAL; + add_files_state.debug = FALSE; + add_files_state.output_is_a_tty = isatty (fileno (stdout)); + + notmuch_opt_desc_t options[] = { +- { NOTMUCH_OPT_BOOLEAN, &add_files_state.verbose, "verbose", 'v', 0 }, ++ { NOTMUCH_OPT_BOOLEAN, &quiet, "quiet", 'q', 0 }, ++ { NOTMUCH_OPT_BOOLEAN, &verbose, "verbose", 'v', 0 }, + { NOTMUCH_OPT_BOOLEAN, &add_files_state.debug, "debug", 'd', 0 }, + { NOTMUCH_OPT_BOOLEAN, &no_hooks, "no-hooks", 'n', 0 }, + { 0, 0, 0, 0, 0 } +@@ -933,6 +939,12 @@ notmuch_new_command (notmuch_config_t *config, int argc, char *argv[]) + if (opt_index < 0) + return EXIT_FAILURE; + ++ /* quiet trumps verbose */ ++ if (quiet) ++ add_files_state.verbosity = VERBOSITY_QUIET; ++ else if (verbose) ++ add_files_state.verbosity = VERBOSITY_VERBOSE; ++ + add_files_state.new_tags = notmuch_config_get_new_tags (config, &add_files_state.new_tags_length); + add_files_state.new_ignore = notmuch_config_get_new_ignore (config, &add_files_state.new_ignore_length); + add_files_state.synchronize_flags = notmuch_config_get_maildir_synchronize_flags (config); +@@ -954,7 +966,8 @@ notmuch_new_command (notmuch_config_t *config, int argc, char *argv[]) + if (interrupted) + return EXIT_FAILURE; + +- printf ("Found %d total files (that's not much mail).\n", count); ++ if (add_files_state.verbosity >= VERBOSITY_NORMAL) ++ printf ("Found %d total files (that's not much mail).\n", count); + if (notmuch_database_create (db_path, ¬much)) + return EXIT_FAILURE; + add_files_state.total_files = count; +@@ -964,11 +977,14 @@ notmuch_new_command (notmuch_config_t *config, int argc, char *argv[]) + return EXIT_FAILURE; + + if (notmuch_database_needs_upgrade (notmuch)) { +- printf ("Welcome to a new version of notmuch! Your database will now be upgraded.\n"); ++ if (add_files_state.verbosity >= VERBOSITY_NORMAL) ++ printf ("Welcome to a new version of notmuch! Your database will now be upgraded.\n"); + gettimeofday (&add_files_state.tv_start, NULL); +- notmuch_database_upgrade (notmuch, upgrade_print_progress, ++ notmuch_database_upgrade (notmuch, ++ add_files_state.verbosity >= VERBOSITY_NORMAL ? upgrade_print_progress : NULL, + &add_files_state); +- printf ("Your notmuch database has now been upgraded to database format version %u.\n", ++ if (add_files_state.verbosity >= VERBOSITY_NORMAL) ++ printf ("Your notmuch database has now been upgraded to database format version %u.\n", + notmuch_database_get_version (notmuch)); + } + +@@ -999,8 +1015,8 @@ notmuch_new_command (notmuch_config_t *config, int argc, char *argv[]) + add_files_state.removed_directories = _filename_list_create (config); + add_files_state.directory_mtimes = _filename_list_create (config); + +- if (! debugger_is_active () && add_files_state.output_is_a_tty +- && ! add_files_state.verbose) { ++ if (add_files_state.verbosity == VERBOSITY_NORMAL && ++ add_files_state.output_is_a_tty && ! debugger_is_active ()) { + setup_progress_printing_timer (); + timer_is_active = TRUE; + } +@@ -1053,7 +1069,8 @@ notmuch_new_command (notmuch_config_t *config, int argc, char *argv[]) + if (timer_is_active) + stop_progress_printing_timer (); + +- print_results (&add_files_state); ++ if (add_files_state.verbosity >= VERBOSITY_NORMAL) ++ print_results (&add_files_state); + + if (ret) + fprintf (stderr, "Note: A fatal error was encountered: %s\n", +-- +1.8.5.2 + -- 2.26.2