diff --git a/cli/spinner/spinner.go b/cli/spinner/spinner.go index 5c7ac47..e5ba69b 100644 --- a/cli/spinner/spinner.go +++ b/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), ), )