diff --git a/decor/elapsed.go b/decor/elapsed.go index 5183d59..e389f15 100644 --- a/decor/elapsed.go +++ b/decor/elapsed.go @@ -27,7 +27,7 @@ producer := chooseTimeProducer(style) fn := func(s Statistics) string { if !s.Completed { - msg = producer(time.Since(startTime), s.Aborted) + msg = producer(time.Since(startTime)) } return msg } diff --git a/decor/eta.go b/decor/eta.go index 684caa7..d03caa7 100644 --- a/decor/eta.go +++ b/decor/eta.go @@ -60,19 +60,16 @@ WC average ewma.MovingAverage normalizer TimeNormalizer - producer func(time.Duration, bool) string + producer func(time.Duration) string } func (d *movingAverageETA) Decor(s Statistics) string { - var remaining time.Duration - if !s.Aborted { - v := math.Round(d.average.Value()) - remaining = time.Duration((s.Total - s.Current) * int64(v)) - if d.normalizer != nil { - remaining = d.normalizer.Normalize(remaining) - } - } - return d.FormatMsg(d.producer(remaining, s.Aborted)) + v := math.Round(d.average.Value()) + remaining := time.Duration((s.Total - s.Current) * int64(v)) + if d.normalizer != nil { + remaining = d.normalizer.Normalize(remaining) + } + return d.FormatMsg(d.producer(remaining)) } func (d *movingAverageETA) EwmaUpdate(n int64, dur time.Duration) { @@ -117,12 +114,12 @@ WC startTime time.Time normalizer TimeNormalizer - producer func(time.Duration, bool) string + producer func(time.Duration) string } func (d *averageETA) Decor(s Statistics) string { var remaining time.Duration - if s.Current != 0 && !s.Aborted { + if s.Current != 0 { durPerItem := float64(time.Since(d.startTime)) / float64(s.Current) durPerItem = math.Round(durPerItem) remaining = time.Duration((s.Total - s.Current) * int64(durPerItem)) @@ -130,7 +127,7 @@ remaining = d.normalizer.Normalize(remaining) } } - return d.FormatMsg(d.producer(remaining, s.Aborted)) + return d.FormatMsg(d.producer(remaining)) } func (d *averageETA) AverageAdjust(startTime time.Time) { @@ -172,48 +169,33 @@ }) } -func chooseTimeProducer(style TimeStyle) func(time.Duration, bool) string { +func chooseTimeProducer(style TimeStyle) func(time.Duration) string { switch style { case ET_STYLE_HHMMSS: - return func(remaining time.Duration, aborted bool) string { - if aborted { - return "--:--:--" - } + return func(remaining time.Duration) string { hours := int64(remaining/time.Hour) % 60 minutes := int64(remaining/time.Minute) % 60 seconds := int64(remaining/time.Second) % 60 return fmt.Sprintf("%02d:%02d:%02d", hours, minutes, seconds) } case ET_STYLE_HHMM: - return func(remaining time.Duration, aborted bool) string { - if aborted { - return "--:--" - } + return func(remaining time.Duration) string { hours := int64(remaining/time.Hour) % 60 minutes := int64(remaining/time.Minute) % 60 return fmt.Sprintf("%02d:%02d", hours, minutes) } case ET_STYLE_MMSS: - return func(remaining time.Duration, aborted bool) string { + return func(remaining time.Duration) string { hours := int64(remaining/time.Hour) % 60 minutes := int64(remaining/time.Minute) % 60 seconds := int64(remaining/time.Second) % 60 if hours > 0 { - if aborted { - return "--:--:--" - } return fmt.Sprintf("%02d:%02d:%02d", hours, minutes, seconds) } - if aborted { - return "--:--" - } return fmt.Sprintf("%02d:%02d", minutes, seconds) } default: - return func(remaining time.Duration, aborted bool) string { - if aborted { - return "unknown" - } + return func(remaining time.Duration) string { // strip off nanoseconds return ((remaining / time.Second) * time.Second).String() }