@@ -3,56 +3,60 @@ package cli
33import (
44 "errors"
55 "fmt"
6+
7+ "github.com/mattn/go-colorable"
68)
79
810var inProgress = false
911
12+ var out = colorable .NewColorableStdout ()
13+
1014func IsInProgress () bool {
1115 return inProgress
1216}
1317
1418func Info (format string , a ... any ) {
1519 if inProgress {
16- fmt .Println ( )
20+ fmt .Fprintln ( out )
1721 inProgress = false
1822 }
19- fmt .Printf ( "%s\n " , fmt .Sprintf (format , a ... ))
23+ fmt .Fprintf ( out , "%s\n " , fmt .Sprintf (format , a ... ))
2024}
2125
2226func Begin (format string , a ... any ) {
23- fmt .Printf ( format , a ... )
27+ fmt .Fprintf ( out , format , a ... )
2428 inProgress = true
2529}
2630
2731func Finish () {
2832 if inProgress {
29- fmt .Print ( " done.\n " )
33+ fmt .Fprint ( out , " done.\n " )
3034 inProgress = false
3135 }
3236}
3337
3438func Success (format string , a ... any ) {
3539 if inProgress {
36- fmt .Println ( )
40+ fmt .Fprintln ( out )
3741 inProgress = false
3842 }
39- fmt .Printf ( "\x1b [32m%s\x1b [0m\n " , fmt .Sprintf (format , a ... ))
43+ fmt .Fprintf ( out , "\x1b [32m%s\x1b [0m\n " , fmt .Sprintf (format , a ... ))
4044}
4145
4246func Warn (format string , a ... any ) {
4347 if inProgress {
44- fmt .Println ( )
48+ fmt .Fprintln ( out )
4549 inProgress = false
4650 }
47- fmt .Printf ( "\x1b [33mWARNING: %s\x1b [0m\n " , fmt .Sprintf (format , a ... ))
51+ fmt .Fprintf ( out , "\x1b [33mWARNING: %s\x1b [0m\n " , fmt .Sprintf (format , a ... ))
4852}
4953
5054func Error (format string , a ... any ) error {
5155 if inProgress {
52- fmt .Println ( )
56+ fmt .Fprintln ( out )
5357 inProgress = false
5458 }
5559 message := fmt .Sprintf (format , a ... )
56- fmt .Printf ( "\x1b [1;31mERROR: %s\x1b [0m\n " , message )
60+ fmt .Fprintf ( out , "\x1b [1;31mERROR: %s\x1b [0m\n " , message )
5761 return errors .New (message )
5862}
0 commit comments