diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2010-02-25 15:52:22 +0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2010-02-25 15:52:22 +0000 |
commit | e42401ee7b0c0b166677595d4fd1255176ba33c2 (patch) | |
tree | 084c328df6c2295f612a8a888e0f2527bcf6ec97 | |
parent | af565c348a286fb55ad17f8c3c4233465d32a9f6 (diff) | |
download | guix-e42401ee7b0c0b166677595d4fd1255176ba33c2.tar.gz |
* Implement RemoteStore::queryDerivationOutputs().
-rw-r--r-- | src/libstore/remote-store.cc | 6 | ||||
-rw-r--r-- | src/libstore/worker-protocol.hh | 1 | ||||
-rw-r--r-- | src/nix-worker/nix-worker.cc | 6 |
3 files changed, 10 insertions, 3 deletions
diff --git a/src/libstore/remote-store.cc b/src/libstore/remote-store.cc index 07cb62dc80..b438c074fb 100644 --- a/src/libstore/remote-store.cc +++ b/src/libstore/remote-store.cc @@ -296,7 +296,11 @@ Path RemoteStore::queryDeriver(const Path & path) PathSet RemoteStore::queryDerivationOutputs(const Path & path) { - throw Error("not yet implemented"); + openConnection(); + writeInt(wopQueryDerivationOutputs, to); + writeString(path, to); + processStderr(); + return readStorePaths(from); } diff --git a/src/libstore/worker-protocol.hh b/src/libstore/worker-protocol.hh index e44c1e36b5..9e36aab0f0 100644 --- a/src/libstore/worker-protocol.hh +++ b/src/libstore/worker-protocol.hh @@ -34,6 +34,7 @@ typedef enum { wopSetOptions = 19, wopCollectGarbage = 20, wopQuerySubstitutablePathInfo = 21, + wopQueryDerivationOutputs = 22, } WorkerOp; diff --git a/src/nix-worker/nix-worker.cc b/src/nix-worker/nix-worker.cc index 362b9b9287..59ab487761 100644 --- a/src/nix-worker/nix-worker.cc +++ b/src/nix-worker/nix-worker.cc @@ -313,14 +313,16 @@ static void performOp(unsigned int clientVersion, } case wopQueryReferences: - case wopQueryReferrers: { + case wopQueryReferrers: + case wopQueryDerivationOutputs: { Path path = readStorePath(from); startWork(); PathSet paths; if (op == wopQueryReferences) store->queryReferences(path, paths); - else + else if (op == wopQueryReferrers) store->queryReferrers(path, paths); + else paths = store->queryDerivationOutputs(path); stopWork(); writeStringSet(paths, to); break; |