More progress indicator improvements

In particular, don't show superfluous "fetching path" and "building
path(s)" messages, and show the current round (with --repeat).
This commit is contained in:
Eelco Dolstra 2017-10-24 15:05:21 +02:00
parent 96051dd057
commit 3460e4cf00
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE
3 changed files with 14 additions and 14 deletions

View file

@ -1402,9 +1402,15 @@ void DerivationGoal::tryToBuild()
bool buildLocally = buildMode != bmNormal || drv->willBuildLocally();
auto started = [&]() {
act = std::make_unique<Activity>(*logger, lvlInfo, actBuild,
hook ? fmt("building '%s' on '%s'", drvPath, machineName) : fmt("building '%s'", drvPath),
Logger::Fields{drvPath, hook ? machineName : ""});
auto msg = fmt(
buildMode == bmRepair ? "repairing outputs of '%s'" :
buildMode == bmCheck ? "checking outputs of '%s'" :
nrRounds > 1 ? "building '%s' (round %d/%d)" :
"building '%s'", drvPath, curRound, nrRounds);
fmt("building '%s'", drvPath);
if (hook) msg += fmt(" on '%s'", machineName);
act = std::make_unique<Activity>(*logger, lvlInfo, actBuild, msg,
Logger::Fields{drvPath, hook ? machineName : "", curRound, nrRounds});
mcRunningBuilds = std::make_unique<MaintainCount<uint64_t>>(worker.runningBuilds);
worker.updateProgress();
};
@ -1738,14 +1744,6 @@ int childEntry(void * arg)
void DerivationGoal::startBuilder()
{
auto f = format(
buildMode == bmRepair ? "repairing path(s) %1%" :
buildMode == bmCheck ? "checking path(s) %1%" :
nrRounds > 1 ? "building path(s) %1% (round %2%/%3%)" :
"building path(s) %1%");
f.exceptions(boost::io::all_error_bits ^ boost::io::too_many_args_bit);
printInfo(f % showPaths(missingPaths) % curRound % nrRounds);
/* Right platform? */
if (!drv->canBuildLocally()) {
throw Error(
@ -3601,8 +3599,6 @@ void SubstitutionGoal::tryToRun()
return;
}
printInfo(format("fetching path '%1%'...") % storePath);
maintainRunningSubstitutions = std::make_unique<MaintainCount<uint64_t>>(worker.runningSubstitutions);
worker.updateProgress();

View file

@ -159,6 +159,10 @@ public:
auto machineName = getS(fields, 1);
if (machineName != "")
i->s += fmt(" on " ANSI_BOLD "%s" ANSI_NORMAL, machineName);
auto curRound = getI(fields, 2);
auto nrRounds = getI(fields, 3);
if (nrRounds != 1)
i->s += fmt(" (round %d/%d)", curRound, nrRounds);
}
if (type == actSubstitute) {

View file

@ -100,7 +100,7 @@ clearStore
rm $(grep -l "StorePath:.*dependencies-input-2" $cacheDir/*.narinfo)
nix-build --option binary-caches "file://$cacheDir" --option signed-binary-caches '' dependencies.nix -o $TEST_ROOT/result 2>&1 | tee $TEST_ROOT/log
grep -q "fetching path" $TEST_ROOT/log
grep -q "copying path" $TEST_ROOT/log
if [ -n "$HAVE_SODIUM" ]; then