diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2016-03-21T16·55+0100 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2016-03-21T16·55+0100 |
commit | 1c5f73f529d83543dc776b4de4180309bfd3b4a3 (patch) | |
tree | 3f19160e2f65893c560d04a8a99b024427b86b78 /src/libstore/binary-cache-store.cc | |
parent | 87295b9844090d76173a9f68341a4b17a7e1e7b9 (diff) |
Add Store::dumpPath() method
This allows applying nix-store --verify-path to binary cache stores: NIX_REMOTE=https://cache.nixos.org nix-store --verify-path /nix/store/s5c7...
Diffstat (limited to 'src/libstore/binary-cache-store.cc')
-rw-r--r-- | src/libstore/binary-cache-store.cc | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/libstore/binary-cache-store.cc b/src/libstore/binary-cache-store.cc index 94f5cbabb706..de456752bd89 100644 --- a/src/libstore/binary-cache-store.cc +++ b/src/libstore/binary-cache-store.cc @@ -156,10 +156,8 @@ bool BinaryCacheStore::isValidPath(const Path & storePath) return fileExists(narInfoFileFor(storePath)); } -void BinaryCacheStore::exportPath(const Path & storePath, bool sign, Sink & sink) +void BinaryCacheStore::dumpPath(const Path & storePath, Sink & sink) { - assert(!sign); - auto res = readNarInfo(storePath); auto nar = getFile(res.url); @@ -183,6 +181,15 @@ void BinaryCacheStore::exportPath(const Path & storePath, bool sign, Sink & sink assert(nar.size() % 8 == 0); sink((unsigned char *) nar.c_str(), nar.size()); +} + +void BinaryCacheStore::exportPath(const Path & storePath, bool sign, Sink & sink) +{ + assert(!sign); + + auto res = readNarInfo(storePath); + + dumpPath(storePath, sink); // FIXME: check integrity of NAR. @@ -264,7 +271,7 @@ Path BinaryCacheStore::addToStore(const string & name, const Path & srcPath, StringSink sink; Hash h; if (recursive) { - dumpPath(srcPath, sink, filter); + nix::dumpPath(srcPath, sink, filter); h = hashString(hashAlgo, *sink.s); } else { auto s = readFile(srcPath); |