diff options
Diffstat (limited to 'src/nix')
-rw-r--r-- | src/nix/progress-bar.cc | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/nix/progress-bar.cc b/src/nix/progress-bar.cc index 9bc40523970a..0c42fe5cc136 100644 --- a/src/nix/progress-bar.cc +++ b/src/nix/progress-bar.cc @@ -138,11 +138,11 @@ public: void startActivity(ActivityId act, Verbosity lvl, ActivityType type, const std::string & s, const Fields & fields, ActivityId parent) override { - if (lvl <= verbosity && !s.empty()) - log(lvl, s + "..."); - auto state(state_.lock()); + if (lvl <= verbosity && !s.empty()) + log(*state, lvl, s + "..."); + state->activities.emplace_back(ActInfo()); auto i = std::prev(state->activities.end()); i->s = s; @@ -163,7 +163,13 @@ public: i->s = fmt("fetching " ANSI_BOLD "%s" ANSI_NORMAL " from %s", name, getS(fields, 1)); } + if (type == actQueryPathInfo) { + auto name = storePathToName(getS(fields, 0)); + i->s = fmt("querying about " ANSI_BOLD "%s" ANSI_NORMAL " on %s", name, getS(fields, 1)); + } + if ((type == actDownload && hasAncestor(*state, actCopyPath, parent)) + || (type == actDownload && hasAncestor(*state, actQueryPathInfo, parent)) || (type == actCopyPath && hasAncestor(*state, actSubstitute, parent))) i->visible = false; @@ -189,6 +195,7 @@ public: auto i = state->its.find(act); if (i != state->its.end()) { + auto & actByType = state->activitiesByType[i->second->type]; actByType.done += i->second->done; actByType.failed += i->second->failed; |