diff options
Diffstat (limited to 'internal/progress/render.go')
| -rw-r--r-- | internal/progress/render.go | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/internal/progress/render.go b/internal/progress/render.go index f51852eb..a67d40ff 100644 --- a/internal/progress/render.go +++ b/internal/progress/render.go @@ -7,7 +7,6 @@ import ( "lindenii.org/go/furgit/internal/utils" "lindenii.org/go/lgo/fmt/humanize" - "lindenii.org/go/lgo/intconv" ) func (meter *Meter) render(now time.Time, eol string) { @@ -41,19 +40,15 @@ func (meter *Meter) render(now time.Time, eol string) { } func (meter *Meter) renderCounters() string { - if meter.total > 0 { - u, err := intconv.Uint64ToInt(meter.lastDone * 100 / meter.total) - if err != nil { - return "overflow" - // TODO - } + done := meter.done.Load() - meter.lastPercent = u + if meter.total > 0 { + meter.lastPercent = int(done * 100 / int64(meter.total)) - return fmt.Sprintf("%3d%% (%d/%d)%s", meter.lastPercent, meter.lastDone, meter.total, meter.throughputSuffix) + return fmt.Sprintf("%3d%% (%d/%d)%s", meter.lastPercent, done, meter.total, meter.throughputSuffix) } - return fmt.Sprintf("%d%s", meter.lastDone, meter.throughputSuffix) + return fmt.Sprintf("%d%s", done, meter.throughputSuffix) } func (meter *Meter) refreshThroughput(now time.Time) { @@ -74,6 +69,7 @@ func (meter *Meter) refreshThroughput(now time.Time) { return } - rate := uint64(float64(meter.lastBytes) / elapsed.Seconds()) - meter.throughputSuffix = ", " + humanize.Bytes(meter.lastBytes) + " | " + humanize.Bytes(rate) + "/s" + bytes := meter.bytes.Load() + rate := uint64(float64(bytes) / elapsed.Seconds()) + meter.throughputSuffix = ", " + humanize.Bytes(uint64(bytes)) + " | " + humanize.Bytes(rate) + "/s" //#nosec G115 } |
