123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- // +build windows
- package pb
- import (
- "fmt"
- "log"
- )
- func (p *Pool) print(first bool) bool {
- p.m.Lock()
- defer p.m.Unlock()
- var out string
- if !first {
- coords, err := getCursorPos()
- if err != nil {
- log.Panic(err)
- }
- coords.Y -= int16(p.lastBarsCount)
- if coords.Y < 0 {
- coords.Y = 0
- }
- coords.X = 0
- err = setCursorPos(coords)
- if err != nil {
- log.Panic(err)
- }
- }
- 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
- }
|