about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2016-09-02T18·26-0400
committerShea Levy <shea@shealevy.com>2016-09-02T18·26-0400
commitb4b5e9ce2f58aecea2fe3ca1fe9388e4fc7df556 (patch)
tree36bbae6a3d6c9902577991c78878a3ac6a458ba9 /src
parenta705e8ce0a8aaf3afe885892834468e95c197a16 (diff)
Add narFromPath op to nix daemon
Diffstat (limited to 'src')
-rw-r--r--src/libstore/worker-protocol.hh1
-rw-r--r--src/nix-daemon/nix-daemon.cc8
2 files changed, 9 insertions, 0 deletions
diff --git a/src/libstore/worker-protocol.hh b/src/libstore/worker-protocol.hh
index f8cd7cc4be..c7f024efe7 100644
--- a/src/libstore/worker-protocol.hh
+++ b/src/libstore/worker-protocol.hh
@@ -46,6 +46,7 @@ typedef enum {
     wopVerifyStore = 35,
     wopBuildDerivation = 36,
     wopAddSignatures = 37,
+    wopNarFromPath = 38
 } WorkerOp;
 
 
diff --git a/src/nix-daemon/nix-daemon.cc b/src/nix-daemon/nix-daemon.cc
index fba522540b..0ef2a68721 100644
--- a/src/nix-daemon/nix-daemon.cc
+++ b/src/nix-daemon/nix-daemon.cc
@@ -576,6 +576,14 @@ static void performOp(ref<LocalStore> store, bool trusted, unsigned int clientVe
         break;
     }
 
+    case wopNarFromPath: {
+        auto path = readStorePath(*store, from);
+        startWork();
+        dumpPath(path, to);
+        stopWork();
+        break;
+    }
+
     default:
         throw Error(format("invalid operation %1%") % op);
     }