mirror of
https://github.com/Luzifer/gallery.git
synced 2024-11-14 08:52:43 +00:00
70 lines
1.5 KiB
Markdown
70 lines
1.5 KiB
Markdown
|
# Terminal progress bar for Go
|
||
|
|
||
|
[![Coverage Status](https://coveralls.io/repos/github/cheggaaa/pb/badge.svg?branch=v2)](https://coveralls.io/github/cheggaaa/pb?branch=v2)
|
||
|
|
||
|
### It's beta, some features may be changed
|
||
|
|
||
|
This is proposal for the second version of progress bar
|
||
|
- based on text/template
|
||
|
- can take custom elements
|
||
|
- using colors is easy
|
||
|
|
||
|
## Installation
|
||
|
|
||
|
```
|
||
|
go get gopkg.in/cheggaaa/pb.v2
|
||
|
```
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
```Go
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
"gopkg.in/cheggaaa/pb.v2"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
func main() {
|
||
|
simple()
|
||
|
fromPreset()
|
||
|
customTemplate(`Custom template: {{counters . }}`)
|
||
|
customTemplate(`{{ red "With colors:" }} {{bar . | green}} {{speed . | blue }}`)
|
||
|
customTemplate(`{{ red "With funcs:" }} {{ bar . "<" "-" (cycle . "↖" "↗" "↘" "↙" ) "." ">"}} {{speed . | rndcolor }}`)
|
||
|
customTemplate(`{{ bar . "[<" "·····•·····" (rnd "ᗧ" "◔" "◕" "◷" ) "•" ">]"}}`)
|
||
|
}
|
||
|
|
||
|
func simple() {
|
||
|
count := 1000
|
||
|
bar := pb.StartNew(count)
|
||
|
for i := 0; i < count; i++ {
|
||
|
bar.Increment()
|
||
|
time.Sleep(time.Millisecond * 2)
|
||
|
}
|
||
|
bar.Finish()
|
||
|
}
|
||
|
|
||
|
func fromPreset() {
|
||
|
count := 1000
|
||
|
//bar := pb.Default.Start(total)
|
||
|
//bar := pb.Simple.Start(total)
|
||
|
bar := pb.Full.Start(count)
|
||
|
defer bar.Finish()
|
||
|
bar.Set("prefix", "fromPreset(): ")
|
||
|
for i := 0; i < count/2; i++ {
|
||
|
bar.Add(2)
|
||
|
time.Sleep(time.Millisecond * 4)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func customTemplate(tmpl string) {
|
||
|
count := 1000
|
||
|
bar := pb.ProgressBarTemplate(tmpl).Start(count)
|
||
|
defer bar.Finish()
|
||
|
for i := 0; i < count/2; i++ {
|
||
|
bar.Add(2)
|
||
|
time.Sleep(time.Millisecond * 4)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
```
|