about summary refs log tree commit diff
path: root/src/nix
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2016-07-18T22·50-0400
committerShea Levy <shea@shealevy.com>2016-11-10T16·09-0500
commit167d12b02cc8cadfaf7c28959532030d65687a8f (patch)
tree37907cb4370b395da98c592ae1b73070acd8ed2b /src/nix
parent2af5d35fdc1171a9bdab7e2fc005673d76417c06 (diff)
build-remote: Implement in C++
Diffstat (limited to 'src/nix')
-rw-r--r--src/nix/copy.cc28
1 files changed, 1 insertions, 27 deletions
diff --git a/src/nix/copy.cc b/src/nix/copy.cc
index e8317dc393fd..976b0d3e0b81 100644
--- a/src/nix/copy.cc
+++ b/src/nix/copy.cc
@@ -46,33 +46,7 @@ struct CmdCopy : StorePathsCommand
         ref<Store> srcStore = srcUri.empty() ? store : openStore(srcUri);
         ref<Store> dstStore = dstUri.empty() ? store : openStore(dstUri);
 
-        std::string copiedLabel = "copied";
-
-        logger->setExpected(copiedLabel, storePaths.size());
-
-        ThreadPool pool;
-
-        processGraph<Path>(pool,
-            PathSet(storePaths.begin(), storePaths.end()),
-
-            [&](const Path & storePath) {
-                return srcStore->queryPathInfo(storePath)->references;
-            },
-
-            [&](const Path & storePath) {
-                checkInterrupt();
-
-                if (!dstStore->isValidPath(storePath)) {
-                    Activity act(*logger, lvlInfo, format("copying ‘%s’...") % storePath);
-
-                    copyStorePath(srcStore, dstStore, storePath);
-
-                    logger->incProgress(copiedLabel);
-                } else
-                    logger->incExpected(copiedLabel, -1);
-            });
-
-        pool.process();
+        copyPaths(srcStore, dstStore, storePaths);
     }
 };