diff --git a/debian/control b/debian/control index f04c53b..de94e19 100644 --- a/debian/control +++ b/debian/control @@ -23,76 +23,5 @@ golang-github-vividcortex-ewma-dev, golang-golang-x-crypto-dev Description: multi progress bar for Go cli applications - Multi Progress Bar GoDoc (https://godoc.org/github.com/vbauerster/mpb) - Build Status (https://travis-ci.org/vbauerster/mpb) Go Report Card - (https://goreportcard.com/report/github.com/vbauerster/mpb) - . - mpb is a Go lib for rendering progress bars in terminal applications. - Features• Multiple Bars: Multiple progress bars are supported• - Dynamic Total: Set total while bar is running• Dynamic Add/Remove: - Dynamically add or remove bars• Cancellation: Cancel whole - rendering process• Predefined Decorators: Elapsed time, ewma - (https://github.com/VividCortex/ewma) based ETA, Percentage, Bytes - counter• Decorator's width sync: Synchronized decorator's width among - multiple barsUsageRendering single bar (_examples/singleBar/main.go) - ```go package main - . - import ( - "math/rand" "time" - "github.com/vbauerster/mpb/v4" "github.com/vbauerster/mpb/v4/decor" - . - ) - . - func main() { - // initialize progress container, with custom width p := - mpb.New(mpb.WithWidth(64)) - total := 100 name := "Single Bar:" // adding a single bar, which will - inherit container's width bar := p.AddBar(int64(total), - // set custom bar style, default one is "[=>-]" - mpb.BarStyle("╢▌▌░╟"), mpb.PrependDecorators( - // display our name with one space on the right decor.Name(name, - decor.WC{W: len(name) + 1, C: decor.DidentRight}), // replace ETA - decorator with "done" message, OnComplete event decor.OnComplete( - // ETA decorator with ewma age of 60, and width reservation - of 4 decor.EwmaETA(decor.ET_STYLE_GO, 60, decor.WC{W: 4}), - "done", - ), - ), mpb.AppendDecorators(decor.Percentage()), - ) // simulating some work max := 100 * time.Millisecond for i := 0; i < - total; i++ { - start := time.Now() time.Sleep(time.Duration(rand.Intn(10)+1) * - max / 10) // ewma based decorators require work duration measurement - bar.IncrBy(1, time.Since(start)) - } // wait for our bar to complete and flush p.Wait() - . - } ``` Rendering multiple bars (_examples/multiBars//main.go) ```go - var wg sync.WaitGroup // pass &wg (optional), so p will wait for it - eventually p := mpb.New(mpb.WithWaitGroup(&wg)) total, numBars := - 100, 3 wg.Add(numBars) - for i := 0; i < numBars; i++ { - name := fmt.Sprintf("Bar#%d:", i) bar := p.AddBar(int64(total), - mpb.PrependDecorators( - // simple name decorator decor.Name(name), // - decor.DSyncWidth bit enables column width synchronization - decor.Percentage(decor.WCSyncSpace), - ), mpb.AppendDecorators( - // replace ETA decorator with "done" message, OnComplete - event decor.OnComplete( - // ETA decorator with ewma age of 60 - decor.EwmaETA(decor.ET_STYLE_GO, 60), "done", - ), - ), - ) // simulating some work go func() { - defer wg.Done() max := 100 * time.Millisecond for i := 0; i < - total; i++ { - start := time.Now() time.Sleep(time.Duration(rand.Intn(10)+1) - * max / 10) // ewma based decorators require work duration - measurement bar.IncrBy(1, time.Since(start)) - } - }() - } // Waiting for passed &wg and for all bars to complete and flush - p.Wait() - . - ``` Dynamic total (_examples/dynTotal/main.go) dynamic total - Complex example (_examples/complex/main.go) complex Bytes counters - (_examples/io/main.go) byte counters + mpb is a golang library for rendering progress bars in terminal + applications.