aboutsummaryrefslogtreecommitdiff
path: root/src/nix/copy.cc
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2016-04-25 15:26:07 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2016-04-25 19:18:45 +0200
commit41633f9f73f402714dccb4a7f379441ee8272619 (patch)
treeec5ff0129865356552f340ed099d88e164bcb4ec /src/nix/copy.cc
parentc879a20850f2035cd87b1693da26cadf30affe11 (diff)
Improved logging abstraction
This also gets rid of --log-type, since the nested log type isn't useful in a multi-threaded situation, and nobody cares about the "pretty" log type.
Diffstat (limited to 'src/nix/copy.cc')
-rw-r--r--src/nix/copy.cc22
1 files changed, 5 insertions, 17 deletions
diff --git a/src/nix/copy.cc b/src/nix/copy.cc
index b5bd362d6..be51fee62 100644
--- a/src/nix/copy.cc
+++ b/src/nix/copy.cc
@@ -1,5 +1,4 @@
#include "command.hh"
-#include "progress-bar.hh"
#include "shared.hh"
#include "store-api.hh"
#include "sync.hh"
@@ -47,16 +46,9 @@ struct CmdCopy : StorePathsCommand
ref<Store> srcStore = srcUri.empty() ? store : openStoreAt(srcUri);
ref<Store> dstStore = dstUri.empty() ? store : openStoreAt(dstUri);
- ProgressBar progressBar;
+ std::string copiedLabel = "copied";
- std::atomic<size_t> done{0};
- std::atomic<size_t> total{storePaths.size()};
-
- auto showProgress = [&]() {
- return (format("[%d/%d copied]") % done % total).str();
- };
-
- progressBar.updateStatus(showProgress());
+ logger->setExpected(copiedLabel, storePaths.size());
ThreadPool pool;
@@ -71,7 +63,7 @@ struct CmdCopy : StorePathsCommand
checkInterrupt();
if (!dstStore->isValidPath(storePath)) {
- auto activity(progressBar.startActivity(format("copying ā€˜%sā€™...") % storePath));
+ Activity act(*logger, lvlInfo, format("copying ā€˜%sā€™...") % storePath);
StringSink sink;
srcStore->exportPaths({storePath}, false, sink);
@@ -79,16 +71,12 @@ struct CmdCopy : StorePathsCommand
StringSource source(*sink.s);
dstStore->importPaths(false, source, 0);
- done++;
+ logger->incProgress(copiedLabel);
} else
- total--;
-
- progressBar.updateStatus(showProgress());
+ logger->incExpected(copiedLabel, -1);
});
pool.process();
-
- progressBar.done();
}
};