aboutsummaryrefslogtreecommitdiff
path: root/src/zen/cmds/wipe_cmd.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2025-05-05 18:57:15 +0200
committerGitHub Enterprise <[email protected]>2025-05-05 18:57:15 +0200
commitfd5b8fde6bd838b17e6100f01d466bcbf01f91fe (patch)
tree9fd20b6c4e7ba1da6d654eae74391c84981c354d /src/zen/cmds/wipe_cmd.cpp
parentsilence Out Of Disk errors to sentry (#378) (diff)
downloadarchived-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.cpp26
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);