Skip to content

Commit 6cc44e4

Browse files
authored
Merge pull request #14647 from NixOS/fix-progress-bar
libmain: Fix download progress rendering
2 parents 952be9f + 4031343 commit 6cc44e4

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

src/libmain/progress-bar.cc

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,8 @@ class ProgressBar : public Logger
470470
std::string res;
471471

472472
auto renderActivity =
473-
[&](ActivityType type, const std::string & itemFmt, const std::string & numberFmt = "%d", double unit = 1) {
473+
[&] [[nodiscard]] (
474+
ActivityType type, const std::string & itemFmt, const std::string & numberFmt = "%d", double unit = 1) {
474475
auto & act = state.activitiesByType[type];
475476
uint64_t done = act.done, expected = act.done, running = 0, failed = act.failed;
476477
for (auto & j : act.its) {
@@ -514,7 +515,7 @@ class ProgressBar : public Logger
514515
return s;
515516
};
516517

517-
auto renderSizeActivity = [&](ActivityType type, const std::string & itemFmt = "%s") {
518+
auto renderSizeActivity = [&] [[nodiscard]] (ActivityType type, const std::string & itemFmt = "%s") {
518519
auto & act = state.activitiesByType[type];
519520
uint64_t done = act.done, expected = act.done, running = 0, failed = act.failed;
520521
for (auto & j : act.its) {
@@ -573,14 +574,17 @@ class ProgressBar : public Logger
573574
return s;
574575
};
575576

577+
auto maybeAppendToResult = [&](std::string_view s) {
578+
if (s.empty())
579+
return;
580+
if (!res.empty())
581+
res += ", ";
582+
res += s;
583+
};
584+
576585
auto showActivity =
577586
[&](ActivityType type, const std::string & itemFmt, const std::string & numberFmt = "%d", double unit = 1) {
578-
auto s = renderActivity(type, itemFmt, numberFmt, unit);
579-
if (s.empty())
580-
return;
581-
if (!res.empty())
582-
res += ", ";
583-
res += s;
587+
maybeAppendToResult(renderActivity(type, itemFmt, numberFmt, unit));
584588
};
585589

586590
showActivity(actBuilds, "%s built");
@@ -602,7 +606,7 @@ class ProgressBar : public Logger
602606
}
603607
}
604608

605-
renderSizeActivity(actFileTransfer, "%s DL");
609+
maybeAppendToResult(renderSizeActivity(actFileTransfer, "%s DL"));
606610

607611
{
608612
auto s = renderActivity(actOptimiseStore, "%s paths optimised");

0 commit comments

Comments
 (0)