diff options
| author | Dan Engelbrecht <[email protected]> | 2025-05-05 18:57:15 +0200 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2025-05-05 18:57:15 +0200 |
| commit | fd5b8fde6bd838b17e6100f01d466bcbf01f91fe (patch) | |
| tree | 9fd20b6c4e7ba1da6d654eae74391c84981c354d /src/zen/cmds/wipe_cmd.cpp | |
| parent | silence Out Of Disk errors to sentry (#378) (diff) | |
| download | archived-zen-fd5b8fde6bd838b17e6100f01d466bcbf01f91fe.tar.xz archived-zen-fd5b8fde6bd838b17e6100f01d466bcbf01f91fe.zip | |
UE style formatted progress output (#380)
* add UE style @progress style progress
Diffstat (limited to 'src/zen/cmds/wipe_cmd.cpp')
| -rw-r--r-- | src/zen/cmds/wipe_cmd.cpp | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/src/zen/cmds/wipe_cmd.cpp b/src/zen/cmds/wipe_cmd.cpp index 2b4e9ab3c..9bf0c6f9e 100644 --- a/src/zen/cmds/wipe_cmd.cpp +++ b/src/zen/cmds/wipe_cmd.cpp @@ -35,10 +35,26 @@ namespace { static std::atomic<bool> AbortFlag = false; static bool IsVerbose = false; static bool Quiet = false; - static bool UsePlainProgress = false; + static ProgressBar::Mode ProgressMode = ProgressBar::Mode::Pretty; const bool SingleThreaded = false; bool BoostWorkerThreads = true; + uint32_t GetUpdateDelayMS(ProgressBar::Mode InMode) + { + switch (InMode) + { + case ProgressBar::Mode::Plain: + return 5000; + case ProgressBar::Mode::Pretty: + return 200; + case ProgressBar::Mode::Log: + return 2000; + default: + ZEN_ASSERT(false); + return 0; + } + } + WorkerThreadPool& GetIOWorkerPool() { return SingleThreaded ? GetSyncWorkerPool() @@ -161,7 +177,7 @@ namespace { ZEN_TRACE_CPU("CleanDirectory"); Stopwatch Timer; - ProgressBar Progress(UsePlainProgress); + ProgressBar Progress(ProgressMode, "Clean Folder"); std::atomic<bool> CleanWipe = true; std::atomic<uint64_t> DiscoveredItemCount = 0; @@ -396,7 +412,7 @@ namespace { GetIOWorkerPool(), Work.PendingWork()); - Work.Wait(UsePlainProgress ? 5000 : 200, [&](bool IsAborted, ptrdiff_t PendingWork) { + Work.Wait(ProgressMode == ProgressBar::Mode::Pretty ? 200 : 5000, [&](bool IsAborted, ptrdiff_t PendingWork) { if (Quiet) { return; @@ -455,7 +471,7 @@ namespace { } uint64_t NowMs = Timer.GetElapsedTimeMs(); - if ((NowMs - LastUpdateTimeMs) >= (UsePlainProgress ? 5000 : 200)) + if ((NowMs - LastUpdateTimeMs) >= GetUpdateDelayMS(ProgressMode)) { LastUpdateTimeMs = NowMs; @@ -529,7 +545,7 @@ WipeCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) Quiet = m_Quiet; IsVerbose = m_Verbose; - UsePlainProgress = IsVerbose || m_PlainProgress; + ProgressMode = (IsVerbose || m_PlainProgress) ? ProgressBar::Mode::Plain : ProgressBar::Mode::Pretty; BoostWorkerThreads = m_BoostWorkerThreads; MakeSafeAbsolutePathÍnPlace(m_Directory); |