Browse Source

fix spinner.go

master v0.0.27
realxlfd 2 months ago
parent
commit
f023845425
  1. 7
      cli/spinner/spinner.go

7
cli/spinner/spinner.go

@ -3,6 +3,7 @@ package spinner
import (
"fmt"
"strings"
"sync"
"time"
"github.com/gookit/color"
@ -36,6 +37,7 @@ type Spinner struct {
length int
msgCh chan string
Show bool
exit *sync.Mutex
}
func (s *Spinner) updateLength() *Spinner {
@ -81,6 +83,7 @@ func New(msg string, mode []string) *Spinner {
mode: mode,
animeIndex: 0,
Show: true,
exit: &sync.Mutex{},
}
return spinner.updateLength()
}
@ -90,6 +93,7 @@ func (s *Spinner) Start() *Spinner {
if s.run {
return s
}
s.exit.Lock()
s.msgCh = make(
chan string,
5,
@ -140,6 +144,7 @@ func (s *Spinner) frame() *Spinner {
s.printFrame(s.msg, 0)
}
}
s.exit.Unlock()
return s
}
@ -179,6 +184,7 @@ func (s *Spinner) Finish(info ...string) {
s.msg = s.joinMsg(info...)
s.run = false
close(s.msgCh)
s.exit.Lock()
fmt.Printf(
"\r%s%s %s\n",
s.suffix,
@ -195,6 +201,7 @@ func (s *Spinner) Abort(info ...string) {
s.msg = s.joinMsg(info...)
s.run = false
close(s.msgCh)
s.exit.Lock()
fmt.Printf(
"\r%s%s %s\n",
s.suffix,

Loading…
Cancel
Save