From f2f5943307fbca58a8dc1d69527eb7614e6a299e Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Sun, 3 Nov 2013 14:24:49 +0200 Subject: [PATCH] [PATCH v2 09/11] cli: add compact --backup=DIRECTORY option, don't backup by default --- b7/716e163d4a7d722b164090f0f4d9e916cd5ab1 | 155 ++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 b7/716e163d4a7d722b164090f0f4d9e916cd5ab1 diff --git a/b7/716e163d4a7d722b164090f0f4d9e916cd5ab1 b/b7/716e163d4a7d722b164090f0f4d9e916cd5ab1 new file mode 100644 index 000000000..61cada9ab --- /dev/null +++ b/b7/716e163d4a7d722b164090f0f4d9e916cd5ab1 @@ -0,0 +1,155 @@ +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 2342E431FDD + for ; Sun, 3 Nov 2013 04:25:49 -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 yOCx0oTxLJva for ; + Sun, 3 Nov 2013 04:25:43 -0800 (PST) +Received: from mail-ee0-f43.google.com (mail-ee0-f43.google.com + [74.125.83.43]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client + certificate requested) by olra.theworths.org (Postfix) with ESMTPS id + B141A431FBF for ; Sun, 3 Nov 2013 04:25:18 -0800 + (PST) +Received: by mail-ee0-f43.google.com with SMTP id b47so582454eek.16 + for ; Sun, 03 Nov 2013 04:25:17 -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=0JB2ZzawPIouY6NvmqrRui1+ge8R9xGhl9qz5SRR5hQ=; + b=XhtarUtEQutoYba80XKCCDPhPycNh8GJCOrK6yR7tC0PAAy1LED6eM6gJiwagPf1JF + AVfvywCeq5Z1gk4LB+ll3agEfx7M1LtIB3hAen5s5E6QqgAfSPrlXyPlICKdF86N7Dx0 + 0/FPV6JkxeiUxJyVjOqFNnu5CI9Tg7PY7E3KJCM3nvz9oWxq6ZINDUrstY+nw/9FCIfb + UH+WYPfhlNM+ocJmiHK3nJX8LEJWHyICWY2yyixZzzhVVknzm7XQ1UAdx/AuyqhPF3NW + Gy5QMRfUupQNDtGEZP2npbeVEA9M1AIztKAur9O1B4PdOk4xdlZXCYu7buKRjNR4RuXP + CqZg== +X-Gm-Message-State: + ALoCoQnzbGTHD0x06St8avDC4qfTtBRrouMzcntVeGpnHViLC8l3UFl7Y0JbX1cVCyp+6De/vIjR +X-Received: by 10.14.246.11 with SMTP id p11mr12725703eer.9.1383481517576; + Sun, 03 Nov 2013 04:25:17 -0800 (PST) +Received: from localhost (dsl-hkibrasgw2-58c36f-91.dhcp.inet.fi. + [88.195.111.91]) by mx.google.com with ESMTPSA id + bn13sm32810609eeb.11.2013.11.03.04.25.16 for + (version=TLSv1.2 cipher=RC4-SHA bits=128/128); + Sun, 03 Nov 2013 04:25:17 -0800 (PST) +From: Jani Nikula +To: notmuch@notmuchmail.org +Subject: [PATCH v2 09/11] cli: add compact --backup=DIRECTORY option, + don't backup by default +Date: Sun, 3 Nov 2013 14:24:49 +0200 +Message-Id: + +X-Mailer: git-send-email 1.8.4.rc3 +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, 03 Nov 2013 12:25:49 -0000 + +It's the user's decision. The recommended way is to do a database dump +anyway. Clean up the relevant printfs too. + +--- + +v2: reorder prints +--- + notmuch-compact.c | 27 +++++++++++++-------------- + test/compact | 4 ++-- + 2 files changed, 15 insertions(+), 16 deletions(-) + +diff --git a/notmuch-compact.c b/notmuch-compact.c +index b9461c2..359acfc 100644 +--- a/notmuch-compact.c ++++ b/notmuch-compact.c +@@ -27,16 +27,19 @@ status_update_cb (const char *msg, unused (void *closure)) + } + + int +-notmuch_compact_command (notmuch_config_t *config, +- unused (int argc), +- unused (char *argv[])) ++notmuch_compact_command (notmuch_config_t *config, int argc, char *argv[]) + { + const char *path = notmuch_config_get_database_path (config); +- const char *backup_path; ++ const char *backup_path = NULL; + notmuch_status_t ret; ++ int opt_index; + +- backup_path = talloc_asprintf (config, "%s/xapian.old", path); +- if (! backup_path) ++ notmuch_opt_desc_t options[] = { ++ { NOTMUCH_OPT_STRING, &backup_path, "backup", 0, 0 }, ++ }; ++ ++ opt_index = parse_arguments (argc, argv, options, 1); ++ if (opt_index < 0) + return 1; + + printf ("Compacting database...\n"); +@@ -46,14 +49,10 @@ notmuch_compact_command (notmuch_config_t *config, + return 1; + } + +- printf ("\n"); +- printf ("\n"); +- printf ("The old database has been moved to %s", backup_path); +- printf ("\n"); +- printf ("To delete run,\n"); +- printf ("\n"); +- printf (" rm -R %s\n", backup_path); +- printf ("\n"); ++ if (backup_path) ++ printf ("The old database has been moved to %s.\n", backup_path); ++ ++ printf ("Done.\n"); + + return 0; + } +diff --git a/test/compact b/test/compact +index afab537..ac174ce 100755 +--- a/test/compact ++++ b/test/compact +@@ -10,7 +10,7 @@ notmuch tag +tag1 \* + notmuch tag +tag2 subject:Two + notmuch tag -tag1 +tag3 subject:Three + +-test_expect_success "Running compact" "notmuch compact" ++test_expect_success "Running compact" "notmuch compact --backup=${TEST_DIRECTORY}/xapian.old" + + test_begin_subtest "Compact preserves database" + output=$(notmuch search \* | notmuch_search_sanitize) +@@ -21,7 +21,7 @@ thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Three (inbox tag3 unread)" + + test_expect_success 'Restoring Backup' \ + 'rm -Rf ${MAIL_DIR}/.notmuch/xapian && +- mv ${MAIL_DIR}/xapian.old ${MAIL_DIR}/.notmuch/xapian' ++ mv ${TEST_DIRECTORY}/xapian.old ${MAIL_DIR}/.notmuch/xapian' + + test_begin_subtest "Checking restored backup" + output=$(notmuch search \* | notmuch_search_sanitize) +-- +1.8.4.rc3 + -- 2.26.2