| 283 | } |
| 284 | |
| 285 | func (c *Cli) PrintProgressingMark() func() { |
| 286 | progressMarks := []string{`-`, `\`, `|`, `/`} |
| 287 | ticker := time.NewTicker(time.Millisecond * 100) |
| 288 | go func() { |
| 289 | i := 0 |
| 290 | for { |
| 291 | <-ticker.C |
| 292 | mark := progressMarks[i%len(progressMarks)] |
| 293 | fmt.Fprintf(c.OutStream, "\r%s", mark) |
| 294 | i++ |
| 295 | } |
| 296 | }() |
| 297 | |
| 298 | stop := func() { |
| 299 | ticker.Stop() |
| 300 | fmt.Fprintf(c.OutStream, "\r") // clear progressing mark |
| 301 | } |
| 302 | return stop |
| 303 | } |
| 304 | |
| 305 | func (c *Cli) getInterpolatedPrompt() string { |
| 306 | prompt := c.Prompt |