From 208425bd128716d4d00f92d00657db031f0ca127 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 13 Nov 2020 11:19:37 +0100 Subject: [PATCH] Show duration of running builds --- src/libmain/progress-bar.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/libmain/progress-bar.cc b/src/libmain/progress-bar.cc index 8f8580291..2dd82897d 100644 --- a/src/libmain/progress-bar.cc +++ b/src/libmain/progress-bar.cc @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -62,6 +63,7 @@ private: bool visible = true; ActivityId parent; std::optional name; + std::optional> startTime; }; struct ActivitiesByType @@ -396,6 +398,9 @@ public: || type == actSubstitute) i->visible = false; + if (type == actBuild) + i->startTime = std::chrono::steady_clock::now(); + update(*state); } @@ -603,10 +608,13 @@ public: fmt(" %s", renderBar(builds.done, builds.failed, builds.running, builds.expected))); + auto now = std::chrono::steady_clock::now(); + for (auto & build : state.activitiesByType[actBuild].its) { state.statusLines.insert_or_assign({idBuilds, n++}, - fmt(ANSI_BOLD " ‣ %s%s: %s", + fmt(ANSI_BOLD " ‣ %s (%d s)%s: %s", build.second->s, + std::chrono::duration_cast(now - *build.second->startTime).count(), build.second->phase ? fmt(" (%s)", *build.second->phase) : "", build.second->lastLine)); }