about summary refs log tree commit diff
path: root/third_party
diff options
context:
space:
mode:
authorGriffin Smith <grfn@gws.fyi>2020-07-16T02·13-0400
committerglittershark <grfn@gws.fyi>2020-07-16T21·40+0000
commit3999439fbb3d455def815fc873aceea8c9b7d117 (patch)
tree7a8cf117fae57004bf67c40d7366c7d2ba900228 /third_party
parentb6cb681c0b98fff8397b3ad4270b8d1ab2defa0b (diff)
feat(3p/nix): Add OptimiseStore r/1329
Change-Id: I0d254504801283e018eef41bd5ea9850b17c0d80
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1205
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Diffstat (limited to 'third_party')
-rw-r--r--third_party/nix/src/nix-daemon/nix-daemon.cc3
-rw-r--r--third_party/nix/src/proto/worker.proto4
2 files changed, 6 insertions, 1 deletions
diff --git a/third_party/nix/src/nix-daemon/nix-daemon.cc b/third_party/nix/src/nix-daemon/nix-daemon.cc
index da3d909f18..5296199380 100644
--- a/third_party/nix/src/nix-daemon/nix-daemon.cc
+++ b/third_party/nix/src/nix-daemon/nix-daemon.cc
@@ -630,12 +630,13 @@ static void performOp(TunnelLogger* logger, const ref<Store>& store,
       break;
     }
 
-    case wopOptimiseStore:
+    case wopOptimiseStore: {
       logger->startWork();
       store->optimiseStore();
       logger->stopWork();
       to << 1;
       break;
+    }
 
     case wopVerifyStore: {
       bool checkContents;
diff --git a/third_party/nix/src/proto/worker.proto b/third_party/nix/src/proto/worker.proto
index d3e8f65f20..ad1810b4d5 100644
--- a/third_party/nix/src/proto/worker.proto
+++ b/third_party/nix/src/proto/worker.proto
@@ -78,6 +78,10 @@ service Worker {
   // Return all currently valid derivations that have the given store path as an
   // output.
   rpc QueryValidDerivers(StorePath) returns (StorePaths);
+
+  // Optimise the disk space usage of the Nix store by hard-linking files
+  // with the same contents.
+  rpc OptimiseStore(google.protobuf.Empty) returns (google.protobuf.Empty);
 }
 
 enum HashType {