github.com/paultyng/terraform@v0.6.11-0.20180227224804-66ff8f8bed40/command/cli_ui.go (about)

     1  package command
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/mitchellh/cli"
     7  	"github.com/mitchellh/colorstring"
     8  )
     9  
    10  // ColoredUi is a Ui implementation that colors its output according
    11  // to the given color schemes for the given type of output.
    12  type ColorizeUi struct {
    13  	Colorize    *colorstring.Colorize
    14  	OutputColor string
    15  	InfoColor   string
    16  	ErrorColor  string
    17  	WarnColor   string
    18  	Ui          cli.Ui
    19  }
    20  
    21  func (u *ColorizeUi) Ask(query string) (string, error) {
    22  	return u.Ui.Ask(u.colorize(query, u.OutputColor))
    23  }
    24  
    25  func (u *ColorizeUi) AskSecret(query string) (string, error) {
    26  	return u.Ui.AskSecret(u.colorize(query, u.OutputColor))
    27  }
    28  
    29  func (u *ColorizeUi) Output(message string) {
    30  	u.Ui.Output(u.colorize(message, u.OutputColor))
    31  }
    32  
    33  func (u *ColorizeUi) Info(message string) {
    34  	u.Ui.Info(u.colorize(message, u.InfoColor))
    35  }
    36  
    37  func (u *ColorizeUi) Error(message string) {
    38  	u.Ui.Error(u.colorize(message, u.ErrorColor))
    39  }
    40  
    41  func (u *ColorizeUi) Warn(message string) {
    42  	u.Ui.Warn(u.colorize(message, u.WarnColor))
    43  }
    44  
    45  func (u *ColorizeUi) colorize(message string, color string) string {
    46  	if color == "" {
    47  		return message
    48  	}
    49  
    50  	return u.Colorize.Color(fmt.Sprintf("%s%s[reset]", color, message))
    51  }