diff options
| author | Dan Engelbrecht <[email protected]> | 2026-03-12 14:31:54 +0100 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2026-03-12 14:31:54 +0100 |
| commit | 2036af91a1b98779a7634cb7c9356f055ecdb8ed (patch) | |
| tree | 49651280238463d11ccbed4c4ae18a8eb6b16e83 /src | |
| parent | fix OidcToken casing (#826) (diff) | |
| download | zen-2036af91a1b98779a7634cb7c9356f055ecdb8ed.tar.xz zen-2036af91a1b98779a7634cb7c9356f055ecdb8ed.zip | |
show ETA in plain and log output style (#829)
* show ETA in plain and log output style
Diffstat (limited to 'src')
| -rw-r--r-- | src/zen/progressbar.cpp | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/zen/progressbar.cpp b/src/zen/progressbar.cpp index 961375c0b..6581cd116 100644 --- a/src/zen/progressbar.cpp +++ b/src/zen/progressbar.cpp @@ -193,10 +193,17 @@ ProgressBar::UpdateState(const State& NewState, bool DoLinebreak) const size_t PercentDone = NewState.TotalCount > 0u ? gsl::narrow<uint8_t>((100 * (NewState.TotalCount - NewState.RemainingCount)) / NewState.TotalCount) : 0u; + uint64_t Completed = NewState.TotalCount - NewState.RemainingCount; + uint64_t ETAElapsedMS = ElapsedTimeMS - m_PausedMS; + uint64_t ETAMS = ((m_State.TotalCount == NewState.TotalCount) && (NewState.Status == State::EStatus::Running)) && (PercentDone > 5) + ? (ETAElapsedMS * NewState.RemainingCount) / Completed + : 0; + const std::string ETAString = (ETAMS > 0) ? fmt::format(" ETA {}", NiceTimeSpanMs(ETAMS)) : ""; + if (m_Mode == Mode::Plain) { const std::string Details = (!NewState.Details.empty()) ? fmt::format(": {}", NewState.Details) : ""; - const std::string Output = fmt::format("{} {}% ({}){}\n", Task, PercentDone, NiceTimeSpanMs(ElapsedTimeMS), Details); + const std::string Output = fmt::format("{} {}% {}{}{}\n", Task, PercentDone, NiceTimeSpanMs(ElapsedTimeMS), ETAString, Details); OutputToConsoleRaw(Output); m_State = NewState; } @@ -204,12 +211,7 @@ ProgressBar::UpdateState(const State& NewState, bool DoLinebreak) { size_t ProgressBarSize = 20; - size_t ProgressBarCount = (ProgressBarSize * PercentDone) / 100; - uint64_t Completed = NewState.TotalCount - NewState.RemainingCount; - uint64_t ETAElapsedMS = ElapsedTimeMS -= m_PausedMS; - uint64_t ETAMS = ((m_State.TotalCount == NewState.TotalCount) && (NewState.Status == State::EStatus::Running)) && (PercentDone > 5) - ? (ETAElapsedMS * NewState.RemainingCount) / Completed - : 0; + size_t ProgressBarCount = (ProgressBarSize * PercentDone) / 100; uint32_t ConsoleColumns = TuiConsoleColumns(1024); @@ -220,8 +222,6 @@ ProgressBar::UpdateState(const State& NewState, bool DoLinebreak) const std::string ElapsedString = fmt::format(": {}", NiceTimeSpanMs(ElapsedTimeMS)); - const std::string ETAString = (ETAMS > 0) ? fmt::format(" ETA {}", NiceTimeSpanMs(ETAMS)) : ""; - const std::string DetailsString = (!NewState.Details.empty()) ? fmt::format(". {}", NewState.Details) : ""; ExtendableStringBuilder<256> OutputBuilder; @@ -299,7 +299,8 @@ ProgressBar::UpdateState(const State& NewState, bool DoLinebreak) Char = '\''; } } - const std::string Message = fmt::format("@progress \"{} ({}){}\"\n", NewState.Task, NiceTimeSpanMs(ElapsedTimeMS), Details); + const std::string Message = + fmt::format("@progress \"{} {}{}{}\"\n", NewState.Task, NiceTimeSpanMs(ElapsedTimeMS), ETAString, Details); OutputToConsoleRaw(Message); } |