diff --git a/_examples/mexicanBar/go.mod b/_examples/mexicanBar/go.mod new file mode 100644 index 0000000..78d1d8a --- /dev/null +++ b/_examples/mexicanBar/go.mod @@ -0,0 +1,5 @@ +module github.com/vbauerster/mpb/_examples/mexicanBar + +go 1.14 + +require github.com/vbauerster/mpb/v7 v7.0.0 diff --git a/_examples/mexicanBar/main.go b/_examples/mexicanBar/main.go new file mode 100644 index 0000000..a2896c4 --- /dev/null +++ b/_examples/mexicanBar/main.go @@ -0,0 +1,36 @@ +package main + +import ( + "math/rand" + "time" + + "github.com/vbauerster/mpb/v6" + "github.com/vbauerster/mpb/v6/decor" +) + +func main() { + // initialize progress container, with custom width + p := mpb.New(mpb.WithWidth(80)) + + total := 100 + name := "Complex Filler:" + bs := mpb.BarStyle() + bs.Lbound("[\u001b[36;1m") + bs.Filler("_") + bs.Tip("\u001b[0m⛵\u001b[36;1m") + bs.Padding("_") + bs.Rbound("\u001b[0m]") + bar := p.Add(int64(total), + mpb.NewBarFiller(bs), + mpb.PrependDecorators(decor.Name(name)), + mpb.AppendDecorators(decor.Percentage()), + ) + // simulating some work + max := 100 * time.Millisecond + for i := 0; i < total; i++ { + time.Sleep(time.Duration(rand.Intn(10)+1) * max / 10) + bar.Increment() + } + // wait for our bar to complete + p.Wait() +}