| // +build linux darwin freebsd netbsd openbsd solaris dragonfly |
| |
| package pb |
| |
| import "fmt" |
| |
| func (p *Pool) print(first bool) bool { |
| p.m.Lock() |
| defer p.m.Unlock() |
| var out string |
| if !first { |
| out = fmt.Sprintf("\033[%dA", p.lastBarsCount) |
| } |
| isFinished := true |
| for _, bar := range p.bars { |
| if !bar.IsFinished() { |
| isFinished = false |
| } |
| bar.Update() |
| out += fmt.Sprintf("\r%s\n", bar.String()) |
| } |
| if p.Output != nil { |
| fmt.Fprint(p.Output, out) |
| } else { |
| fmt.Print(out) |
| } |
| p.lastBarsCount = len(p.bars) |
| return isFinished |
| } |