internal/version: set progress writer formatting width
Change-Id: Iecd41e93e85435a0ae365143a355067af6bf1389
GitHub-Last-Rev: 79403f2c8d721d6e97b3935a1dd5461372af1ea0
GitHub-Pull-Request: golang/dl#3
Reviewed-on: https://go-review.googlesource.com/c/dl/+/168537
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
diff --git a/internal/version/version.go b/internal/version/version.go
index cfb7128..9509e1d 100644
--- a/internal/version/version.go
+++ b/internal/version/version.go
@@ -350,9 +350,17 @@
if p.n == p.total {
end = ""
}
- fmt.Fprintf(os.Stderr, "Downloaded %0.1f%% (%d / %d bytes)%s\n",
+ fmt.Fprintf(os.Stderr, "Downloaded %5.1f%% (%*d / %d bytes)%s\n",
(100.0*float64(p.n))/float64(p.total),
- p.n, p.total, end)
+ ndigits(p.total), p.n, p.total, end)
+}
+
+func ndigits(i int64) int {
+ var n int
+ for ; i != 0; i /= 10 {
+ n++
+ }
+ return n
}
func (p *progressWriter) Write(buf []byte) (n int, err error) {