Browse Source

add a lot

master v0.0.47
RealXLFD 3 weeks ago
parent
commit
1977fd93ab
  1. 27
      cli/spinner/spinner.go

27
cli/spinner/spinner.go

@ -34,7 +34,6 @@ type Spinner struct {
msg string
delay time.Duration
run bool
suffix string
mode []string
animeIndex int
length int
@ -43,11 +42,6 @@ type Spinner struct {
exit *sync.Mutex
}
func (s *Spinner) updateLength() *Spinner {
s.length = utf8.RuneCountInString(s.suffix) + 2 + utf8.RuneCountInString(s.msg)
return s
}
func (s *Spinner) next() string {
return s.mode[s.animeIndex]
}
@ -60,13 +54,8 @@ func (s *Spinner) SetMsg(msg string) *Spinner {
s.printFrame(msg, oldLength-length)
}
s.msg = msg
return s.updateLength()
}
// SetSuffix 设置spinner的后缀
func (s *Spinner) SetSuffix(suffix string) *Spinner {
s.suffix = suffix
return s.updateLength()
s.length = utf8.RuneCountInString(s.msg)
return s
}
// SetDelay 更新spinner的动画间隔
@ -82,13 +71,13 @@ func New(msg string, mode []string) *Spinner {
msg: msg,
delay: DELAY / time.Duration(len(mode)),
run: false,
suffix: "",
mode: mode,
animeIndex: 0,
Show: true,
exit: &sync.Mutex{},
}
return spinner.updateLength()
spinner.length = utf8.RuneCountInString(spinner.msg)
return spinner
}
// Start 启动Spinner动画
@ -156,8 +145,8 @@ func (s *Spinner) frame() *Spinner {
func (s *Spinner) printFrame(msg string, spaceCount int) {
fmt.Print(
str.Join(
"\r", s.suffix, cyan(s.next()), " ", msg,
strings.Repeat(" ", spaceCount),
"\r", cyan(s.next()), " ", msg,
strings.Repeat(" ", spaceCount+4),
),
)
}
@ -199,7 +188,7 @@ func (s *Spinner) Finish(info ...string) {
}
fmt.Println(
str.Join(
"\r", s.suffix, green(_SUCCESS), " ", s.msg,
"\r", green(_SUCCESS), " ", s.msg,
strings.Repeat(" ", gap),
),
)
@ -221,7 +210,7 @@ func (s *Spinner) Abort(info ...string) {
}
fmt.Println(
str.Join(
"\r", s.suffix, red(_FAILURE), " ", s.msg,
"\r", red(_FAILURE), " ", s.msg,
strings.Repeat(" ", gap),
),
)

Loading…
Cancel
Save