X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=notmuch-compact.c;h=855545d735769e1269bd5a08ce6c1e99856bb989;hp=359acfcc796625fe1371a18affc0ac6d5929d08f;hb=60ac94fe58635f9c40724afa0f35965fc9ff1afc;hpb=54e7f1777d0b623e0995c9d5e88ab9b412e470bb diff --git a/notmuch-compact.c b/notmuch-compact.c index 359acfcc..855545d7 100644 --- a/notmuch-compact.c +++ b/notmuch-compact.c @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see http://www.gnu.org/licenses/ . + * along with this program. If not, see https://www.gnu.org/licenses/ . * * Author: Ben Gamari */ @@ -23,7 +23,7 @@ static void status_update_cb (const char *msg, unused (void *closure)) { - printf("%s\n", msg); + printf ("%s\n", msg); } int @@ -32,27 +32,42 @@ notmuch_compact_command (notmuch_config_t *config, int argc, char *argv[]) const char *path = notmuch_config_get_database_path (config); const char *backup_path = NULL; notmuch_status_t ret; + notmuch_bool_t quiet = FALSE; int opt_index; notmuch_opt_desc_t options[] = { { NOTMUCH_OPT_STRING, &backup_path, "backup", 0, 0 }, + { NOTMUCH_OPT_BOOLEAN, &quiet, "quiet", 'q', 0 }, + { NOTMUCH_OPT_INHERIT, (void *) ¬much_shared_options, NULL, 0, 0 }, + { 0, 0, 0, 0, 0} }; opt_index = parse_arguments (argc, argv, options, 1); if (opt_index < 0) - return 1; + return EXIT_FAILURE; - printf ("Compacting database...\n"); - ret = notmuch_database_compact (path, backup_path, status_update_cb, NULL); + if (notmuch_requested_db_uuid) { + fprintf (stderr, "Error: --uuid not implemented for compact\n"); + return EXIT_FAILURE; + } + + notmuch_process_shared_options (argv[0]); + + if (! quiet) + printf ("Compacting database...\n"); + ret = notmuch_database_compact (path, backup_path, + quiet ? NULL : status_update_cb, NULL); if (ret) { - fprintf (stderr, "Compaction failed: %s\n", notmuch_status_to_string(ret)); - return 1; + fprintf (stderr, "Compaction failed: %s\n", notmuch_status_to_string (ret)); + return EXIT_FAILURE; } - if (backup_path) - printf ("The old database has been moved to %s.\n", backup_path); + if (! quiet) { + if (backup_path) + printf ("The old database has been moved to %s.\n", backup_path); - printf ("Done.\n"); + printf ("Done.\n"); + } - return 0; + return EXIT_SUCCESS; }