Compare commits

...

3 commits
v1.0.0 ... main

3 changed files with 17 additions and 6 deletions

3
go.mod
View file

@ -8,6 +8,9 @@ require (
)
require (
github.com/kr/pretty v0.3.1 // indirect
github.com/kr/text v0.2.0 // indirect
github.com/rogpeppe/go-internal v1.9.0 // indirect
golang.org/x/sys v0.27.0 // indirect
golang.org/x/text v0.19.0 // indirect
)

8
go.sum
View file

@ -1,7 +1,15 @@
github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0=
github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/nicksnyder/go-i18n/v2 v2.4.1 h1:zwzjtX4uYyiaU02K5Ia3zSkpJZrByARkRB4V3YPrr0g=
github.com/nicksnyder/go-i18n/v2 v2.4.1/go.mod h1:++Pl70FR6Cki7hdzZRnEEqdc2dJt+SAGotyFg/SvZMk=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo=
golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s=

View file

@ -44,18 +44,16 @@ func New(info ProgressInfo) *ProgressBar {
func (p *ProgressBar) render(final bool) {
p.lock.Lock()
defer p.lock.Unlock()
var sb strings.Builder
numFilled := math.Round((float64(p.currentBytes) / float64(p.maxBytes)) * 40)
numBlank := 40 - numFilled
donePercent := math.Round(float64(p.currentBytes) / float64(p.maxBytes) * 100)
if int(donePercent) == p.currentPercent {
if int(donePercent) == p.currentPercent && !final {
return
}
p.currentPercent = int(donePercent)
var blockColor string
@ -121,7 +119,7 @@ func (p *ProgressBar) render(final bool) {
if width == 0 {
lineNum = 1
} else {
lineNum = ((len(removeANSIEscapeCodes(sb.String())) + width - 1) / width)
lineNum = (len(removeANSIEscapeCodes(sb.String())) + width - 1) / width
}
if p.hasStarted {
@ -142,9 +140,11 @@ func (p *ProgressBar) render(final bool) {
}
func (p *ProgressBar) Add(num int64) {
p.lock.Lock()
p.currentBytes = p.currentBytes + num
p.render(false)
p.lock.Unlock()
}
func (p *ProgressBar) Close() (err error) {
@ -161,7 +161,7 @@ func (p *ProgressBar) Close() (err error) {
if width == 0 {
lineNum = 1
} else {
lineNum = ((p.textWidth + width - 1) / width)
lineNum = (p.textWidth + width - 1) / width
}
for i := 0; i < lineNum; i++ {