mirror of
https://github.com/fatih/color.git
synced 2025-02-16 18:34:39 +02:00
color: add helper function for bool pointer
This commit is contained in:
parent
85fc70c416
commit
95e7214071
12
color.go
12
color.go
@ -239,17 +239,13 @@ func (c *Color) unformat() string {
|
|||||||
// code and still being able to output. Can be used for flags like
|
// code and still being able to output. Can be used for flags like
|
||||||
// "--no-color". To enable back use EnableColor() method.
|
// "--no-color". To enable back use EnableColor() method.
|
||||||
func (c *Color) DisableColor() {
|
func (c *Color) DisableColor() {
|
||||||
t := new(bool)
|
c.noColor = boolPtr(true)
|
||||||
*t = true
|
|
||||||
c.noColor = t
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// EnableColor enables the color output. Use it in conjuction with
|
// EnableColor enables the color output. Use it in conjuction with
|
||||||
// DisableColor(). Otherwise this method has no side effects.
|
// DisableColor(). Otherwise this method has no side effects.
|
||||||
func (c *Color) EnableColor() {
|
func (c *Color) EnableColor() {
|
||||||
t := new(bool)
|
c.noColor = boolPtr(false)
|
||||||
*t = false
|
|
||||||
c.noColor = t
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Color) isNoColorSet() bool {
|
func (c *Color) isNoColorSet() bool {
|
||||||
@ -262,6 +258,10 @@ func (c *Color) isNoColorSet() bool {
|
|||||||
return NoColor
|
return NoColor
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func boolPtr(v bool) *bool {
|
||||||
|
return &v
|
||||||
|
}
|
||||||
|
|
||||||
// Black is an convenient helper function to print with black foreground. A
|
// Black is an convenient helper function to print with black foreground. A
|
||||||
// newline is appended to format by default.
|
// newline is appended to format by default.
|
||||||
func Black(format string, a ...interface{}) { printColor(format, FgBlack, a...) }
|
func Black(format string, a ...interface{}) { printColor(format, FgBlack, a...) }
|
||||||
|
@ -44,7 +44,41 @@ func TestColor(t *testing.T) {
|
|||||||
t.Errorf("Expecting %s, got '%s'\n", escapedForm, scannedLine)
|
t.Errorf("Expecting %s, got '%s'\n", escapedForm, scannedLine)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestNoColor(t *testing.T) {
|
||||||
|
rb := new(bytes.Buffer)
|
||||||
|
Output = rb
|
||||||
|
|
||||||
|
testColors := []struct {
|
||||||
|
text string
|
||||||
|
code Attribute
|
||||||
|
}{
|
||||||
|
{text: "black", code: FgBlack},
|
||||||
|
{text: "red", code: FgRed},
|
||||||
|
{text: "green", code: FgGreen},
|
||||||
|
{text: "yellow", code: FgYellow},
|
||||||
|
{text: "blue", code: FgBlue},
|
||||||
|
{text: "magent", code: FgMagenta},
|
||||||
|
{text: "cyan", code: FgCyan},
|
||||||
|
{text: "white", code: FgWhite},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, c := range testColors {
|
||||||
|
p := New(c.code)
|
||||||
|
p.DisableColor()
|
||||||
|
p.Print(c.text)
|
||||||
|
|
||||||
|
line, _ := rb.ReadString('\n')
|
||||||
|
|
||||||
|
if line != c.text {
|
||||||
|
t.Errorf("Expecting %s, got '%s'\n", c.text, line)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestColorVisual(t *testing.T) {
|
||||||
// First Visual Test
|
// First Visual Test
|
||||||
fmt.Println("")
|
fmt.Println("")
|
||||||
Output = ansicolor.NewAnsiColorWriter(os.Stdout)
|
Output = ansicolor.NewAnsiColorWriter(os.Stdout)
|
||||||
@ -126,35 +160,3 @@ func TestColor(t *testing.T) {
|
|||||||
fmt.Fprintln(Output, CyanString("cyan"))
|
fmt.Fprintln(Output, CyanString("cyan"))
|
||||||
fmt.Fprintln(Output, WhiteString("white"))
|
fmt.Fprintln(Output, WhiteString("white"))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestNoColor(t *testing.T) {
|
|
||||||
rb := new(bytes.Buffer)
|
|
||||||
Output = rb
|
|
||||||
|
|
||||||
testColors := []struct {
|
|
||||||
text string
|
|
||||||
code Attribute
|
|
||||||
}{
|
|
||||||
{text: "black", code: FgBlack},
|
|
||||||
{text: "red", code: FgRed},
|
|
||||||
{text: "green", code: FgGreen},
|
|
||||||
{text: "yellow", code: FgYellow},
|
|
||||||
{text: "blue", code: FgBlue},
|
|
||||||
{text: "magent", code: FgMagenta},
|
|
||||||
{text: "cyan", code: FgCyan},
|
|
||||||
{text: "white", code: FgWhite},
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, c := range testColors {
|
|
||||||
p := New(c.code)
|
|
||||||
p.DisableColor()
|
|
||||||
p.Print(c.text)
|
|
||||||
|
|
||||||
line, _ := rb.ReadString('\n')
|
|
||||||
|
|
||||||
if line != c.text {
|
|
||||||
t.Errorf("Expecting %s, got '%s'\n", c.text, line)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user