@@ -17,8 +17,11 @@ type Terminal interface {
1717 InOrStdin () io.Reader
1818 OutOrStdout () io.Writer
1919 Debugf (msg string , args ... interface {})
20+ Info (msg string )
2021 Infof (msg string , args ... interface {})
22+ Error (err error , msg string )
2123 Errorf (err error , msg string , args ... interface {})
24+ Fatal (err error , msg string )
2225 Fatalf (err error , msg string , args ... interface {})
2326 PromptBoolf (msg string , args ... interface {}) bool
2427 AddPreFatalExitHook (func ())
@@ -65,6 +68,15 @@ func (t *DefaultTerminal) Debugf(msg string, args ...interface{}) {
6568 fmt .Fprintln (t .OutOrStdout (), fmt .Sprintf (msg , args ... ))
6669}
6770
71+ // Info displays a message with the default color
72+ func (t * DefaultTerminal ) Info (msg string ) {
73+ if msg == "" {
74+ fmt .Fprintln (t .OutOrStdout (), "" )
75+ return
76+ }
77+ fmt .Fprintln (t .OutOrStdout (), msg )
78+ }
79+
6880// Infof displays a message with the default color
6981func (t * DefaultTerminal ) Infof (msg string , args ... interface {}) {
7082 if msg == "" {
@@ -74,11 +86,25 @@ func (t *DefaultTerminal) Infof(msg string, args ...interface{}) {
7486 fmt .Fprintln (t .OutOrStdout (), fmt .Sprintf (msg , args ... ))
7587}
7688
89+ // Error prints a message with the red color
90+ func (t * DefaultTerminal ) Error (err error , msg string ) {
91+ color .New (color .FgRed ).Fprintln (t .OutOrStdout (), fmt .Sprintf ("%s: %s" , msg , err .Error ())) // nolint:errcheck
92+ }
93+
7794// Errorf prints a message with the red color
7895func (t * DefaultTerminal ) Errorf (err error , msg string , args ... interface {}) {
7996 color .New (color .FgRed ).Fprintln (t .OutOrStdout (), fmt .Sprintf ("%s: %s" , fmt .Sprintf (msg , args ... ), err .Error ())) // nolint:errcheck
8097}
8198
99+ // Fatal prints a message with the red color and exits the program with a `1` return code
100+ func (t * DefaultTerminal ) Fatal (err error , msg string ) {
101+ defer os .Exit (1 )
102+ for _ , hook := range t .fatalExitHooks {
103+ hook ()
104+ }
105+ t .Error (err , msg )
106+ }
107+
82108// Fatalf prints a message with the red color and exits the program with a `1` return code
83109func (t * DefaultTerminal ) Fatalf (err error , msg string , args ... interface {}) {
84110 defer os .Exit (1 )
0 commit comments