|
|
- package ProgressBar
-
- import (
- "sync"
-
- "github.com/vbauerster/mpb"
- "github.com/vbauerster/mpb/decor"
- )
-
- var (
- BarWG sync.WaitGroup
- P = mpb.New(mpb.WithWaitGroup(&BarWG))
- )
-
- func InitBar(name string, total int) *mpb.Bar {
- var (
- bar *mpb.Bar
- )
-
- BarWG.Add(1)
-
- bar = P.AddBar(int64(total),
- mpb.PrependDecorators(
- decor.Name(name),
- decor.Percentage(decor.WCSyncSpace),
- ),
- mpb.AppendDecorators(
- // replace ETA decorator with "done" message, OnComplete event
- decor.OnComplete(
- decor.AverageETA(decor.ET_STYLE_GO, decor.WC{W: 4}), "done",
- ),
- ),
- )
-
- return bar
- }
-
- func CloseBar(bar *mpb.Bar) {
- bar.Abort(false)
- BarWG.Done()
- }
|