diff options
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/progress/humanize.go | 1 | ||||
| -rw-r--r-- | internal/progress/render.go | 4 | ||||
| -rw-r--r-- | internal/progress/set.go | 1 |
3 files changed, 6 insertions, 0 deletions
diff --git a/internal/progress/humanize.go b/internal/progress/humanize.go index fd68e1e9..f13845f7 100644 --- a/internal/progress/humanize.go +++ b/internal/progress/humanize.go @@ -9,6 +9,7 @@ func humanizeBytes(n uint64) string { } value := float64(n) + units := []string{"KiB", "MiB", "GiB", "TiB", "PiB"} for i := range units { value /= unit diff --git a/internal/progress/render.go b/internal/progress/render.go index a2395d98..36836cde 100644 --- a/internal/progress/render.go +++ b/internal/progress/render.go @@ -15,19 +15,23 @@ func (meter *Meter) render(now time.Time, eol string) { meter.refreshThroughput(now) counters := meter.renderCounters() + clear := 0 if len(counters) < meter.lastCounterW { clear = meter.lastCounterW - len(counters) + 1 } + meter.lastCounterW = len(counters) line := meter.title + ": " + counters if clear > 0 { line += strings.Repeat(" ", clear) } + line += eol utils.BestEffortFprintf(meter.writer, "%s", line) + if meter.flush != nil { _ = meter.flush() } diff --git a/internal/progress/set.go b/internal/progress/set.go index 3a580a63..b7ed5b28 100644 --- a/internal/progress/set.go +++ b/internal/progress/set.go @@ -17,6 +17,7 @@ func (meter *Meter) Set(done uint64, bytes uint64) { forced := meter.consumeUpdateTick(now) percentChanged := false + if meter.total > 0 { percent := int(done * 100 / meter.total) percentChanged = percent != meter.lastPercent |
