diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2016-05-04T11·36+0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2016-05-04T14·15+0200 |
commit | 538a64e8c314f23ba0c5d76201f1c20e71884a21 (patch) | |
tree | 34bdfda7346d53014619cbfa33bf1398bad4b5e2 /src/libstore/store-api.cc | |
parent | b6c768fb6a341bf1c5fe4a2d2a929415e8519b25 (diff) |
Add a Store::addToStore() variant that accepts a NAR
As a side effect, this ensures that signatures are propagated when copying paths between stores. Also refactored import/export to make use of this.
Diffstat (limited to 'src/libstore/store-api.cc')
-rw-r--r-- | src/libstore/store-api.cc | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/src/libstore/store-api.cc b/src/libstore/store-api.cc index c6cc46c6096d..8600def627fa 100644 --- a/src/libstore/store-api.cc +++ b/src/libstore/store-api.cc @@ -363,10 +363,9 @@ void copyStorePath(ref<Store> srcStore, ref<Store> dstStore, auto info = srcStore->queryPathInfo(storePath); StringSink sink; - srcStore->exportPaths({storePath}, sink); + srcStore->narFromPath({storePath}, sink); - StringSource source(*sink.s); - dstStore->importPaths(source, 0); + dstStore->addToStore(*info, *sink.s); } @@ -406,16 +405,6 @@ string showPaths(const PathSet & paths) } -void Store::exportPaths(const Paths & paths, Sink & sink) -{ - for (auto & i : paths) { - sink << 1; - exportPath(i, sink); - } - sink << 0; -} - - std::string ValidPathInfo::fingerprint() const { if (narSize == 0 || !narHash) |