]> git.notmuchmail.org Git - notmuch/commitdiff
cli: add compact --backup=DIRECTORY option, don't backup by default
authorJani Nikula <jani@nikula.org>
Sun, 3 Nov 2013 12:24:49 +0000 (14:24 +0200)
committerDavid Bremner <david@tethera.net>
Thu, 7 Nov 2013 10:58:58 +0000 (06:58 -0400)
It's the user's decision. The recommended way is to do a database dump
anyway. Clean up the relevant printfs too.

notmuch-compact.c
test/compact

index b9461c2fcae641922811173cef59574a65b0f95b..359acfcc796625fe1371a18affc0ac6d5929d08f 100644 (file)
@@ -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;
 }
index afab5372dc7153c808610145b15597f569e42d0b..ac174cec7111e91e80f2274a83d56f32ff8620b7 100755 (executable)
@@ -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)