]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch-compact.c
cli: return error status if compaction fails
[notmuch] / notmuch-compact.c
index ee7afcf6b9a0c32be4e01ff1881c572bc07bf5fe..b9461c2fcae641922811173cef59574a65b0f95b 100644 (file)
@@ -32,23 +32,28 @@ notmuch_compact_command (notmuch_config_t *config,
                         unused (char *argv[]))
 {
     const char *path = notmuch_config_get_database_path (config);
-    const char *backup_path = path;
+    const char *backup_path;
     notmuch_status_t ret;
 
+    backup_path = talloc_asprintf (config, "%s/xapian.old", path);
+    if (! backup_path)
+       return 1;
+
     printf ("Compacting database...\n");
     ret = notmuch_database_compact (path, backup_path, status_update_cb, NULL);
     if (ret) {
        fprintf (stderr, "Compaction failed: %s\n", notmuch_status_to_string(ret));
-    } else {
-       printf ("\n");
-       printf ("\n");
-       printf ("The old database has been moved to %s/xapian.old", backup_path);
-       printf ("\n");
-       printf ("To delete run,\n");
-       printf ("\n");
-       printf ("    rm -R %s/xapian.old\n", backup_path);
-       printf ("\n");
+       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");
+
     return 0;
 }