aboutsummaryrefslogtreecommitdiff
path: root/src/nix/copy.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/nix/copy.cc')
-rw-r--r--src/nix/copy.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/nix/copy.cc b/src/nix/copy.cc
index 976b0d3e0..b2165cb8f 100644
--- a/src/nix/copy.cc
+++ b/src/nix/copy.cc
@@ -38,15 +38,19 @@ 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, storePaths);
+ copyPaths(srcStore, dstStore, PathSet(storePaths.begin(), storePaths.end()));
}
};