1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-07-07 10:11:47 +02:00

More progress indicator improvements

Fixes #1599.
This commit is contained in:
Eelco Dolstra 2017-10-24 14:47:23 +02:00
parent be220702a7
commit 96051dd057
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE
5 changed files with 28 additions and 14 deletions

View file

@ -1403,7 +1403,7 @@ void DerivationGoal::tryToBuild()
auto started = [&]() {
act = std::make_unique<Activity>(*logger, lvlInfo, actBuild,
fmt("building '%s'", drvPath),
hook ? fmt("building '%s' on '%s'", drvPath, machineName) : fmt("building '%s'", drvPath),
Logger::Fields{drvPath, hook ? machineName : ""});
mcRunningBuilds = std::make_unique<MaintainCount<uint64_t>>(worker.runningBuilds);
worker.updateProgress();
@ -1659,7 +1659,7 @@ HookReply DerivationGoal::tryBuildHook()
string reply;
while (true) {
string s = readLine(worker.hook->fromHook.readSide.get());
if (handleJSONLogMessage(s, worker.act, worker.hook->activities))
if (handleJSONLogMessage(s, worker.act, worker.hook->activities, true))
;
else if (string(s, 0, 2) == "# ") {
reply = string(s, 2);
@ -3270,7 +3270,7 @@ void DerivationGoal::handleChildOutput(int fd, const string & data)
if (hook && fd == hook->fromHook.readSide.get()) {
for (auto c : data)
if (c == '\n') {
handleJSONLogMessage(currentHookLine, worker.act, hook->activities);
handleJSONLogMessage(currentHookLine, worker.act, hook->activities, true);
currentHookLine.clear();
} else
currentHookLine += c;
@ -3287,7 +3287,7 @@ void DerivationGoal::handleEOF(int fd)
void DerivationGoal::flushLine()
{
if (handleJSONLogMessage(currentLogLine, *act, builderActivities))
if (handleJSONLogMessage(currentLogLine, *act, builderActivities, false))
;
else {

View file

@ -565,8 +565,16 @@ void Store::buildPaths(const PathSet & paths, BuildMode buildMode)
void copyStorePath(ref<Store> srcStore, ref<Store> dstStore,
const Path & storePath, RepairFlag repair, CheckSigsFlag checkSigs)
{
Activity act(*logger, lvlInfo, actCopyPath, fmt("copying path '%s'", storePath),
{storePath, srcStore->getUri(), dstStore->getUri()});
auto srcUri = srcStore->getUri();
auto dstUri = dstStore->getUri();
Activity act(*logger, lvlInfo, actCopyPath,
srcUri == "local"
? fmt("copying path '%s' to '%s'", storePath, dstUri)
: dstUri == "local"
? fmt("copying path '%s' from '%s'", storePath, srcUri)
: fmt("copying path '%s' from '%s' to '%s'", storePath, srcUri, dstUri),
{storePath, srcUri, dstUri});
PushActivity pact(act.id);
auto info = srcStore->queryPathInfo(storePath);