about summary refs log tree commit diff
path: root/src/nix-collect-garbage/nix-collect-garbage.cc
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2015-05-21T13·21+0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2015-05-21T13·21+0200
commit13493ef97c01a9839c340cbe4e99baae65b20e15 (patch)
treef1c769d4b2fc967265cf6ac0488dfdcd165ba502 /src/nix-collect-garbage/nix-collect-garbage.cc
parent4441e4cc13ded59e1a57c3d47e7920dd6a3053fa (diff)
nix-collect-garbage: Call collectGarbage() internally
Diffstat (limited to 'src/nix-collect-garbage/nix-collect-garbage.cc')
-rw-r--r--src/nix-collect-garbage/nix-collect-garbage.cc11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/nix-collect-garbage/nix-collect-garbage.cc b/src/nix-collect-garbage/nix-collect-garbage.cc
index a8f6c03c23..740ef88f53 100644
--- a/src/nix-collect-garbage/nix-collect-garbage.cc
+++ b/src/nix-collect-garbage/nix-collect-garbage.cc
@@ -1,3 +1,4 @@
+#include "store-api.hh"
 #include "hash.hh"
 #include "shared.hh"
 #include "globals.hh"
@@ -87,7 +88,13 @@ int main(int argc, char * * argv)
         if (removeOld) removeOldGenerations(profilesDir);
 
         // Run the actual garbage collector.
-        if (!dryRun) runProgramSimple(settings.nixBinDir + "/nix-store", Strings{"--gc"});
+        if (!dryRun) {
+            store = openStore(false);
+            GCOptions options;
+            options.action = GCOptions::gcDeleteDead;
+            GCResults results;
+            PrintFreed freed(true, results);
+            store->collectGarbage(options, results);
+        }
     });
 }
-