github.com/defang-io/defang/src@v0.0.0-20240505002154-bdf411911834/cmd/cli/command/color.go (about) 1 package command 2 3 import "fmt" 4 5 type ColorMode string 6 7 const ( 8 // ColorNever disables color output. 9 ColorNever ColorMode = "never" 10 // ColorAuto enables color output only if the output is connected to a terminal. 11 ColorAuto ColorMode = "auto" 12 // ColorAlways enables color output. 13 ColorAlways ColorMode = "always" 14 // ColorRaw disables color output and does not escape any characters. 15 // ColorRaw ColorMode = "raw" 16 ) 17 18 var allColorModes = []ColorMode{ 19 ColorNever, 20 ColorAuto, 21 ColorAlways, 22 } 23 24 func (c ColorMode) String() string { 25 return string(c) 26 } 27 28 func (c *ColorMode) Set(value string) error { 29 for _, colorMode := range allColorModes { 30 if colorMode.String() == value { 31 *c = colorMode 32 return nil 33 } 34 } 35 return fmt.Errorf("color mode not one of %v", allColorModes) 36 } 37 38 func (c ColorMode) Type() string { 39 return "color-mode" 40 }