nix copy: Make -r option use the "from" store

Previously, we tried to compute the closure in the local store, which
obviously doesn't work.
This commit is contained in:
Eelco Dolstra 2017-03-16 14:25:54 +01:00
parent 287084d688
commit 558eda0115
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE
3 changed files with 14 additions and 4 deletions

View file

@ -38,13 +38,17 @@ struct CmdCopy : StorePathsCommand
};
}
void run(ref<Store> store, Paths storePaths) override
ref<Store> createStore() override
{
return srcUri.empty() ? StoreCommand::createStore() : openStore(srcUri);
}
void run(ref<Store> srcStore, Paths storePaths) override
{
if (srcUri.empty() && dstUri.empty())
throw UsageError("you must pass --from and/or --to");
ref<Store> srcStore = srcUri.empty() ? store : openStore(srcUri);
ref<Store> dstStore = dstUri.empty() ? store : openStore(dstUri);
ref<Store> dstStore = dstUri.empty() ? openStore() : openStore(dstUri);
copyPaths(srcStore, dstStore, PathSet(storePaths.begin(), storePaths.end()));
}