packer: Ui error output is red
This commit is contained in:
parent
2217606e38
commit
0f98852d4d
|
@ -101,8 +101,8 @@ func (c Command) Run(env packer.Environment, args []string) int {
|
|||
var ui packer.Ui
|
||||
|
||||
ui = &packer.ColoredUi{
|
||||
colors[i%len(colors)],
|
||||
env.Ui(),
|
||||
Color: colors[i%len(colors)],
|
||||
Ui: env.Ui(),
|
||||
}
|
||||
|
||||
ui = &packer.PrefixedUi{
|
||||
|
|
20
packer/ui.go
20
packer/ui.go
|
@ -28,8 +28,9 @@ type Ui interface {
|
|||
|
||||
// ColoredUi is a UI that is colored using terminal colors.
|
||||
type ColoredUi struct {
|
||||
Color UiColor
|
||||
Ui Ui
|
||||
Color UiColor
|
||||
ErrorColor UiColor
|
||||
Ui Ui
|
||||
}
|
||||
|
||||
// PrefixedUi is a UI that wraps another UI implementation and adds a
|
||||
|
@ -48,24 +49,29 @@ type ReaderWriterUi struct {
|
|||
}
|
||||
|
||||
func (u *ColoredUi) Say(message string) {
|
||||
u.Ui.Say(u.colorize(message, true))
|
||||
u.Ui.Say(u.colorize(message, u.Color, true))
|
||||
}
|
||||
|
||||
func (u *ColoredUi) Message(message string) {
|
||||
u.Ui.Message(u.colorize(message, false))
|
||||
u.Ui.Message(u.colorize(message, u.Color, false))
|
||||
}
|
||||
|
||||
func (u *ColoredUi) Error(message string) {
|
||||
u.Ui.Error(u.colorize(message, false))
|
||||
color := u.ErrorColor
|
||||
if color == 0 {
|
||||
color = UiColorRed
|
||||
}
|
||||
|
||||
u.Ui.Error(u.colorize(message, color, true))
|
||||
}
|
||||
|
||||
func (u *ColoredUi) colorize(message string, bold bool) string {
|
||||
func (u *ColoredUi) colorize(message string, color UiColor, bold bool) string {
|
||||
attr := 0
|
||||
if bold {
|
||||
attr = 1
|
||||
}
|
||||
|
||||
return fmt.Sprintf("\033[%d;%d;40m%s\033[0m", attr, u.Color, message)
|
||||
return fmt.Sprintf("\033[%d;%d;40m%s\033[0m", attr, color, message)
|
||||
}
|
||||
|
||||
func (u *PrefixedUi) Say(message string) {
|
||||
|
|
|
@ -14,13 +14,26 @@ func testUi() *ReaderWriterUi {
|
|||
}
|
||||
|
||||
func TestColoredUi(t *testing.T) {
|
||||
assert := asserts.NewTestingAsserts(t, true)
|
||||
|
||||
bufferUi := testUi()
|
||||
ui := &ColoredUi{UiColorRed, bufferUi}
|
||||
ui := &ColoredUi{UiColorYellow, UiColorRed, bufferUi}
|
||||
|
||||
ui.Say("foo")
|
||||
assert.Equal(readWriter(bufferUi), "\033[1;31;40mfoo\033[0m\n", "should have color")
|
||||
result := readWriter(bufferUi)
|
||||
if result != "\033[1;33;40mfoo\033[0m\n" {
|
||||
t.Fatalf("invalid output: %s", result)
|
||||
}
|
||||
|
||||
ui.Message("foo")
|
||||
result = readWriter(bufferUi)
|
||||
if result != "\033[0;33;40mfoo\033[0m\n" {
|
||||
t.Fatalf("invalid output: %s", result)
|
||||
}
|
||||
|
||||
ui.Error("foo")
|
||||
result = readWriter(bufferUi)
|
||||
if result != "\033[1;31;40mfoo\033[0m\n" {
|
||||
t.Fatalf("invalid output: %s", result)
|
||||
}
|
||||
}
|
||||
|
||||
func TestPrefixedUi(t *testing.T) {
|
||||
|
|
Loading…
Reference in New Issue