add vendor agtorre/gocolorize
This commit is contained in:
2
vendor/github.com/agtorre/gocolorize/.gitignore
generated
vendored
Normal file
2
vendor/github.com/agtorre/gocolorize/.gitignore
generated
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
*.swp
|
||||
*.test
|
22
vendor/github.com/agtorre/gocolorize/LICENSE.txt
generated
vendored
Normal file
22
vendor/github.com/agtorre/gocolorize/LICENSE.txt
generated
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
# This is the MIT license
|
||||
|
||||
# Copyright (c) 2013 Aaron G. Torres All rights reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
135
vendor/github.com/agtorre/gocolorize/README.md
generated
vendored
Normal file
135
vendor/github.com/agtorre/gocolorize/README.md
generated
vendored
Normal file
@ -0,0 +1,135 @@
|
||||
|
||||
|
||||
#Gocolorize
|
||||
Gocolorize is a package that allows Go programs to provide ANSI coloring in a stateful manner. Gocolorize is ideal for logging or cli applications.
|
||||
|
||||

|
||||
|
||||
[](https://app.wercker.com/project/bykey/ee73c1abee9900c475def6ff9a142237)
|
||||
|
||||
|
||||
##Features
|
||||
- Stateful ANSI coloring
|
||||
- Supports Foreground and background colors
|
||||
- Supports a nuber of text properties such as bold or underline
|
||||
- Color multiple arguments
|
||||
- Color multiple interfaces, including complex types
|
||||
- Tests with 100% coverage
|
||||
- Working examples
|
||||
- Disable ability for portability
|
||||
|
||||
|
||||
##Install Gocolorize
|
||||
To install:
|
||||
|
||||
$ go get github.com/agtorre/gocolorize
|
||||
|
||||
##Usage
|
||||
Ways to initialize a Colorize object:
|
||||
```go
|
||||
//It can be done like this
|
||||
var c gocolorize.Colorize
|
||||
c.SetFg(gocolorize.Red)
|
||||
c.SetBg(gocolorize.Black)
|
||||
|
||||
//Or this
|
||||
c := gocolorize.Colorize{Fg: gocolorize.Red, Bg: gocolorize.Black}
|
||||
|
||||
//Or this
|
||||
c := gocolorize.NewColor("red:black")
|
||||
|
||||
```
|
||||
|
||||
Once you have an object:
|
||||
```go
|
||||
//Call Paint to take inputs and return a colored string
|
||||
c.Paint("This", "accepts", "multiple", "arguments", "and", "types:", 1, 1.25, "etc")
|
||||
|
||||
//If you want a short-hand closure
|
||||
p = c.Paint
|
||||
p("Neat")
|
||||
|
||||
//To print it:
|
||||
Fmt.Println(p("test"))
|
||||
|
||||
//It can also be appended to other strings, used in logging to stdout, etc.
|
||||
a := "test " + p("case")
|
||||
|
||||
//The closure allows you to reuse the original object, for example
|
||||
p = c.Paint
|
||||
c.SetFg(gocolorize.Green)
|
||||
p2 = c.Paint
|
||||
Fmt.Println(p("different" + " " + p2("colors")))
|
||||
```
|
||||
|
||||
Object Properties:
|
||||
```go
|
||||
//These will only apply if there is a Fg and Bg respectively
|
||||
c.ToggleFgIntensity()
|
||||
c.ToggleBgIntensity()
|
||||
|
||||
//Set additional attributes
|
||||
c.ToggleBold()
|
||||
c.ToggleBlink()
|
||||
c.ToggleUnderLine()
|
||||
c.ToggleInverse()
|
||||
|
||||
//To disable or renable everything color (for example on Windows)
|
||||
//the other functions will still work, they'll just return plain
|
||||
//text for portability
|
||||
gocolorize.SetPlain(true)
|
||||
```
|
||||
|
||||
##NewColor String Format
|
||||
```go
|
||||
"foregroundColor+attributes:backgroundColor+attributes"
|
||||
```
|
||||
|
||||
Colors:
|
||||
* black
|
||||
* red
|
||||
* green
|
||||
* yellow
|
||||
* blue
|
||||
* magenta
|
||||
* cyan
|
||||
* white
|
||||
|
||||
Attributes:
|
||||
* b = bold foreground
|
||||
* B = blink foreground
|
||||
* u = underline foreground
|
||||
* h = high intensity (bright) foreground, background
|
||||
* i = inverse
|
||||
|
||||
|
||||
##Examples
|
||||
See examples directory for examples:
|
||||
|
||||
$ cd examples/
|
||||
$ go run song.go
|
||||
$ go run logging.go
|
||||
|
||||
|
||||
##Tests
|
||||
Tests are another good place to see examples. In order to run tests:
|
||||
|
||||
$ go test -cover
|
||||
|
||||
##Portability
|
||||
ANSI coloring will not work in default Windows environments and may not work in other environments correctly. In order to allow compatibility with these environments, you can call:
|
||||
|
||||
```go
|
||||
gocolorize.SetPlain(true)
|
||||
```
|
||||
|
||||
Once toggled, the library will still function, but it will not color the output.
|
||||
|
||||
## References
|
||||
|
||||
Wikipedia ANSI escape codes [Colors](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors)
|
||||
|
||||
[A stylesheet author's guide to terminal colors](http://wynnnetherland.com/journal/a-stylesheet-author-s-guide-to-terminal-colors)
|
||||
|
||||
## Special Thanks
|
||||
https://github.com/mgutz/ansi was an inspiration for the latest version. I did a lot of rewriting, removed the 'paints' module, and did a lot of general cleanup. I learned a lot reading this and using this code.
|
50
vendor/github.com/agtorre/gocolorize/examples/logging/logging.go
generated
vendored
Normal file
50
vendor/github.com/agtorre/gocolorize/examples/logging/logging.go
generated
vendored
Normal file
@ -0,0 +1,50 @@
|
||||
// Copyright (c) 2013 Aaron Torres. All rights reserved.
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/agtorre/gocolorize"
|
||||
"log"
|
||||
"os"
|
||||
)
|
||||
|
||||
var (
|
||||
INFO *log.Logger
|
||||
WARNING *log.Logger
|
||||
CRITICAL *log.Logger
|
||||
)
|
||||
|
||||
type MyError struct {
|
||||
What string
|
||||
}
|
||||
|
||||
func main() {
|
||||
//Revel Example
|
||||
|
||||
//first set some color information
|
||||
info := gocolorize.NewColor("green")
|
||||
warning := gocolorize.NewColor("yellow")
|
||||
|
||||
critical := gocolorize.NewColor("black+u:red")
|
||||
//We could also do this
|
||||
//critical.ToggleUnderline()
|
||||
|
||||
//helper functions to shorten code
|
||||
i := info.Paint
|
||||
w := warning.Paint
|
||||
c := critical.Paint
|
||||
|
||||
//Define the look/feel of the INFO logger
|
||||
INFO = log.New(os.Stdout, i("INFO "), log.Ldate|log.Lmicroseconds|log.Lshortfile)
|
||||
WARNING = log.New(os.Stdout, w("WARNING "), log.Ldate|log.Lmicroseconds|log.Lshortfile)
|
||||
CRITICAL = log.New(os.Stdout, c("CRITICAL")+" ", log.Ldate|log.Lmicroseconds|log.Lshortfile)
|
||||
|
||||
//print out some messages, note the i wrappers for yellow text on the actual info string
|
||||
INFO.Println(i("Loaded module x"))
|
||||
INFO.Println(i("Loaded module y"))
|
||||
WARNING.Println(w("Failed to load module z"))
|
||||
|
||||
e := MyError{What: "Failed"}
|
||||
|
||||
CRITICAL.Println(c("Failed with an error code:", e))
|
||||
|
||||
}
|
44
vendor/github.com/agtorre/gocolorize/examples/song/song.go
generated
vendored
Normal file
44
vendor/github.com/agtorre/gocolorize/examples/song/song.go
generated
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
// Copyright (c) 2013 Aaron Torres. All rights reserved.
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/agtorre/gocolorize"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// one way to define a stateful colorizer
|
||||
var green gocolorize.Colorize
|
||||
green.SetColor(gocolorize.Green)
|
||||
g := green.Paint
|
||||
|
||||
// Another way to do it
|
||||
red := gocolorize.Colorize{Fg: gocolorize.Red}
|
||||
r := red.Paint
|
||||
|
||||
// now with string construction
|
||||
green_black := gocolorize.Colorize{Fg: gocolorize.Blue}
|
||||
|
||||
// toggle attributes
|
||||
green_black.ToggleUnderline()
|
||||
b := green_black.Paint
|
||||
|
||||
//all in 1 line
|
||||
c := gocolorize.NewColor("yellow:black").Paint
|
||||
|
||||
fmt.Println(b("On the twelfth day of Christmas"))
|
||||
fmt.Println(b("my true love sent to me:"))
|
||||
fmt.Println(g("Twelve"), c("Drummers"), r("Drumming"))
|
||||
fmt.Println(g("Eleven"), c("Pipers"), r("Piping"))
|
||||
fmt.Println(g("Ten"), c("Lords"), r("a Leaping"))
|
||||
fmt.Println(g("Nine"), c("Ladies"), r("Dancing"))
|
||||
fmt.Println(g("Eight"), c("Maids"), r("a Milking"))
|
||||
fmt.Println(g("Seven"), c("Swans"), r("a Swimming"))
|
||||
fmt.Println(g("Six"), c("Geese"), r("a Laying"))
|
||||
fmt.Println(g("Five"), c("Golden"), r("Rings"))
|
||||
fmt.Println(g("Four"), c("Calling"), r("Birds"))
|
||||
fmt.Println(g("Three"), c("French"), r("Hens"))
|
||||
fmt.Println(g("Two"), c("Turtle"), r("Doves"))
|
||||
fmt.Println(b("and a Partridge in a Pear Tree"))
|
||||
|
||||
}
|
233
vendor/github.com/agtorre/gocolorize/gocolorize.go
generated
vendored
Normal file
233
vendor/github.com/agtorre/gocolorize/gocolorize.go
generated
vendored
Normal file
@ -0,0 +1,233 @@
|
||||
package gocolorize
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
//internal usage
|
||||
var plain = false
|
||||
|
||||
const (
|
||||
start = "\033["
|
||||
reset = "\033[0m"
|
||||
bold = "1;"
|
||||
blink = "5;"
|
||||
underline = "4;"
|
||||
inverse = "7;"
|
||||
normalIntensityFg = 30
|
||||
highIntensityFg = 90
|
||||
normalIntensityBg = 40
|
||||
highIntensityBg = 100
|
||||
)
|
||||
|
||||
//The rest is external facing
|
||||
|
||||
//Color can be used for Fg and Bg
|
||||
type Color int
|
||||
|
||||
const (
|
||||
ColorNone = iota
|
||||
//placeholder here so we don't confuse with ColorNone
|
||||
Red
|
||||
Green
|
||||
Yellow
|
||||
Blue
|
||||
Magenta
|
||||
Cyan
|
||||
White
|
||||
Black Color = -1
|
||||
)
|
||||
|
||||
var colors = map[string]Color{
|
||||
"red": Red,
|
||||
"green": Green,
|
||||
"yellow": Yellow,
|
||||
"blue": Blue,
|
||||
"magenta": Magenta,
|
||||
"cyan": Cyan,
|
||||
"white": White,
|
||||
"black": Black,
|
||||
}
|
||||
|
||||
//Can set 1 or more of these properties
|
||||
//This struct holds the state
|
||||
type Property struct {
|
||||
Bold bool
|
||||
Blink bool
|
||||
Underline bool
|
||||
Inverse bool
|
||||
Fgi bool
|
||||
Bgi bool
|
||||
}
|
||||
|
||||
//Where the magic happens
|
||||
type Colorize struct {
|
||||
Value []interface{}
|
||||
Fg Color
|
||||
Bg Color
|
||||
Prop Property
|
||||
}
|
||||
|
||||
//returns a value you can stick into print, of type string
|
||||
func (c Colorize) Paint(v ...interface{}) string {
|
||||
c.Value = v
|
||||
return fmt.Sprint(c)
|
||||
}
|
||||
|
||||
func propsString(p Property) string {
|
||||
var result string
|
||||
if p.Bold {
|
||||
result += bold
|
||||
}
|
||||
if p.Blink {
|
||||
result += blink
|
||||
}
|
||||
if p.Underline {
|
||||
result += underline
|
||||
}
|
||||
if p.Inverse {
|
||||
result += inverse
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
// Format allows ColorText to satisfy the fmt.Formatter interface. The format
|
||||
// behaviour is the same as for fmt.Print.
|
||||
func (ct Colorize) Format(fs fmt.State, c rune) {
|
||||
var base int
|
||||
//fmt.Println(ct.Fg, ct.Fgi, ct.Bg, ct.Bgi, ct.Prop)
|
||||
//First Handle the Fg styles and options
|
||||
if ct.Fg != ColorNone && !plain {
|
||||
if ct.Prop.Fgi {
|
||||
base = int(highIntensityFg)
|
||||
} else {
|
||||
base = int(normalIntensityFg)
|
||||
}
|
||||
if ct.Fg == Black {
|
||||
base = base
|
||||
} else {
|
||||
base = base + int(ct.Fg)
|
||||
}
|
||||
fmt.Fprint(fs, start, "0;", propsString(ct.Prop), base, "m")
|
||||
}
|
||||
//Next Handle the Bg styles and options
|
||||
if ct.Bg != ColorNone && !plain {
|
||||
if ct.Prop.Bgi {
|
||||
base = int(highIntensityBg)
|
||||
} else {
|
||||
base = int(normalIntensityBg)
|
||||
}
|
||||
if ct.Bg == Black {
|
||||
base = base
|
||||
} else {
|
||||
base = base + int(ct.Bg)
|
||||
}
|
||||
//We still want to honor props if only the background is set
|
||||
if ct.Fg == ColorNone {
|
||||
fmt.Fprint(fs, start, propsString(ct.Prop), base, "m")
|
||||
//fmt.Fprint(fs, start, base, "m")
|
||||
} else {
|
||||
fmt.Fprint(fs, start, base, "m")
|
||||
}
|
||||
}
|
||||
|
||||
// I simplified this to be a bit less efficient,
|
||||
// but more robust, it will work with anything that
|
||||
// printf("%v") will support
|
||||
for i, v := range ct.Value {
|
||||
fmt.Fprintf(fs, fmt.Sprint(v))
|
||||
if i < len(ct.Value)-1 {
|
||||
fmt.Fprintf(fs, " ")
|
||||
}
|
||||
}
|
||||
|
||||
//after we finish go back to a clean state
|
||||
if !plain {
|
||||
fmt.Fprint(fs, reset)
|
||||
}
|
||||
}
|
||||
|
||||
func NewColor(style string) Colorize {
|
||||
//Thank you https://github.com/mgutz/ansi for
|
||||
//this code example and for a bunch of other ideas
|
||||
foreground_background := strings.Split(style, ":")
|
||||
foreground := strings.Split(foreground_background[0], "+")
|
||||
fg := colors[foreground[0]]
|
||||
fgStyle := ""
|
||||
if len(foreground) > 1 {
|
||||
fgStyle = foreground[1]
|
||||
}
|
||||
|
||||
var bg Color
|
||||
bgStyle := ""
|
||||
if len(foreground_background) > 1 {
|
||||
background := strings.Split(foreground_background[1], "+")
|
||||
bg = colors[background[0]]
|
||||
if len(background) > 1 {
|
||||
bgStyle = background[1]
|
||||
}
|
||||
}
|
||||
|
||||
c := Colorize{Fg: fg, Bg: bg}
|
||||
if len(fgStyle) > 0 {
|
||||
if strings.Contains(fgStyle, "b") {
|
||||
c.ToggleBold()
|
||||
}
|
||||
if strings.Contains(fgStyle, "B") {
|
||||
c.ToggleBlink()
|
||||
}
|
||||
if strings.Contains(fgStyle, "u") {
|
||||
c.ToggleUnderline()
|
||||
}
|
||||
if strings.Contains(fgStyle, "i") {
|
||||
c.ToggleInverse()
|
||||
}
|
||||
if strings.Contains(fgStyle, "h") {
|
||||
c.ToggleFgIntensity()
|
||||
}
|
||||
}
|
||||
|
||||
if len(bgStyle) > 0 {
|
||||
if strings.Contains(bgStyle, "h") {
|
||||
c.ToggleBgIntensity()
|
||||
}
|
||||
}
|
||||
return c
|
||||
}
|
||||
|
||||
func (C *Colorize) SetColor(c Color) {
|
||||
C.Fg = c
|
||||
}
|
||||
|
||||
func (C *Colorize) SetBgColor(b Color) {
|
||||
C.Bg = b
|
||||
}
|
||||
|
||||
func (C *Colorize) ToggleFgIntensity() {
|
||||
C.Prop.Fgi = !C.Prop.Fgi
|
||||
}
|
||||
|
||||
func (C *Colorize) ToggleBgIntensity() {
|
||||
C.Prop.Bgi = !C.Prop.Bgi
|
||||
}
|
||||
|
||||
func (C *Colorize) ToggleBold() {
|
||||
C.Prop.Bold = !C.Prop.Bold
|
||||
}
|
||||
|
||||
func (C *Colorize) ToggleBlink() {
|
||||
C.Prop.Blink = !C.Prop.Blink
|
||||
}
|
||||
|
||||
func (C *Colorize) ToggleUnderline() {
|
||||
C.Prop.Underline = !C.Prop.Underline
|
||||
}
|
||||
|
||||
func (C *Colorize) ToggleInverse() {
|
||||
C.Prop.Inverse = !C.Prop.Inverse
|
||||
}
|
||||
|
||||
func SetPlain(p bool) {
|
||||
plain = p
|
||||
}
|
141
vendor/github.com/agtorre/gocolorize/gocolorize_test.go
generated
vendored
Normal file
141
vendor/github.com/agtorre/gocolorize/gocolorize_test.go
generated
vendored
Normal file
@ -0,0 +1,141 @@
|
||||
package gocolorize
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"testing"
|
||||
)
|
||||
|
||||
var (
|
||||
DEBUG *log.Logger
|
||||
WARN *log.Logger
|
||||
)
|
||||
|
||||
func TestPaint(t *testing.T) {
|
||||
var blue Colorize
|
||||
|
||||
//set some state
|
||||
blue.SetColor(Blue)
|
||||
|
||||
outString := fmt.Sprintf("Testing %s", blue.Paint("paint"))
|
||||
basisString := "Testing \033[0;34mpaint\033[0m"
|
||||
if outString != basisString {
|
||||
t.Errorf("Error: string '%s' does not match '%s'\n", outString, basisString)
|
||||
} else {
|
||||
fmt.Printf("Success: string: '%s' matches '%s'\n", outString, basisString)
|
||||
}
|
||||
}
|
||||
|
||||
func TestPaintString(t *testing.T) {
|
||||
var red Colorize
|
||||
|
||||
//set some state
|
||||
red.SetColor(Red)
|
||||
|
||||
outString := red.Paint("Returning a string")
|
||||
basisString := "\033[0;31mReturning a string\033[0m"
|
||||
if outString != basisString {
|
||||
t.Errorf("Error: string '%s' does not match '%s'\n", outString, basisString)
|
||||
} else {
|
||||
fmt.Printf("Success: string: '%s' matches '%s'\n", outString, basisString)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSetColorSetBgColor(t *testing.T) {
|
||||
var whiteRedBg Colorize
|
||||
|
||||
//set color and background
|
||||
whiteRedBg.SetColor(White)
|
||||
whiteRedBg.SetBgColor(Red)
|
||||
|
||||
outString := whiteRedBg.Paint("Setting a foreground and background color!")
|
||||
basisString := "\033[0;37m\033[41mSetting a foreground and background color!\033[0m"
|
||||
if outString != basisString {
|
||||
t.Errorf("Error: string '%s' does not match '%s'\n", outString, basisString)
|
||||
} else {
|
||||
fmt.Printf("Success: string: '%s' matches '%s'\n", outString, basisString)
|
||||
}
|
||||
}
|
||||
|
||||
func TestPaintMultipleInterface(t *testing.T) {
|
||||
blue := Colorize{Fg: Blue}
|
||||
outString := blue.Paint("Multiple types of args:", 1, 1.24)
|
||||
basisString := "\033[0;34mMultiple types of args: 1 1.24\033[0m"
|
||||
if outString != basisString {
|
||||
t.Errorf("Error: string '%s' does not match '%s'\n", outString, basisString)
|
||||
} else {
|
||||
fmt.Printf("Success: string: '%s' matches '%s'\n", outString, basisString)
|
||||
}
|
||||
}
|
||||
|
||||
func TestPaintComplexType(t *testing.T) {
|
||||
green := Colorize{Bg: Green}
|
||||
outString := green.Paint("Complex types:",
|
||||
struct {
|
||||
int
|
||||
string
|
||||
}{})
|
||||
basisString := fmt.Sprintf("\033[42mComplex types: %v\033[0m", struct {
|
||||
int
|
||||
string
|
||||
}{})
|
||||
if outString != basisString {
|
||||
t.Errorf("Error: string '%s' does not match '%s'\n", outString, basisString)
|
||||
} else {
|
||||
fmt.Printf("Success: string: '%s' matches '%s'\n", outString, basisString)
|
||||
}
|
||||
}
|
||||
|
||||
func TestInitialize(t *testing.T) {
|
||||
blackOnWhite := Colorize{Fg: Black, Bg: White}
|
||||
f := blackOnWhite.Paint
|
||||
|
||||
outString := f("Now this is cool")
|
||||
basisString := "\033[0;30m\033[47mNow this is cool\033[0m"
|
||||
if outString != basisString {
|
||||
t.Errorf("Error: string '%s' does not match '%s'\n", outString, basisString)
|
||||
} else {
|
||||
fmt.Printf("Success: string: '%s' matches '%s'\n", outString, basisString)
|
||||
}
|
||||
}
|
||||
|
||||
func TestToggle(t *testing.T) {
|
||||
craziness := Colorize{Fg: Yellow, Bg: Black}
|
||||
craziness.ToggleFgIntensity()
|
||||
craziness.ToggleBgIntensity()
|
||||
craziness.ToggleBold()
|
||||
craziness.ToggleBlink()
|
||||
craziness.ToggleUnderline()
|
||||
craziness.ToggleInverse()
|
||||
|
||||
outString := craziness.Paint("craziness")
|
||||
basisString := "\033[0;1;5;4;7;93m\033[100mcraziness\033[0m"
|
||||
if outString != basisString {
|
||||
t.Errorf("Error: string '%s' does not match '%s'\n", outString, basisString)
|
||||
} else {
|
||||
fmt.Printf("Success: string: '%s' matches '%s'\n", outString, basisString)
|
||||
}
|
||||
}
|
||||
func TestNewAllToggle(t *testing.T) {
|
||||
n := NewColor("yellow+bBuih:black+h")
|
||||
outString := n.Paint("all toggles in 1 line!")
|
||||
basisString := "\033[0;1;5;4;7;93m\033[100mall toggles in 1 line!\033[0m"
|
||||
if outString != basisString {
|
||||
t.Errorf("Error: string '%s' does not match '%s'\n", outString, basisString)
|
||||
} else {
|
||||
fmt.Printf("Success: string: '%s' matches '%s'\n", outString, basisString)
|
||||
}
|
||||
}
|
||||
|
||||
func TestPlain(t *testing.T) {
|
||||
plain := Colorize{Fg: Magenta}
|
||||
SetPlain(true)
|
||||
outString := plain.Paint("plain", "text")
|
||||
basisString := "plain text"
|
||||
if outString != basisString {
|
||||
t.Errorf("Error: string '%s' does not match '%s'\n", outString, basisString)
|
||||
} else {
|
||||
fmt.Printf("Success: string: '%s' matches '%s'\n", outString, basisString)
|
||||
}
|
||||
SetPlain(false)
|
||||
}
|
BIN
vendor/github.com/agtorre/gocolorize/screenshot/tests.png
generated
vendored
Normal file
BIN
vendor/github.com/agtorre/gocolorize/screenshot/tests.png
generated
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
46
vendor/github.com/agtorre/gocolorize/wercker.yml
generated
vendored
Normal file
46
vendor/github.com/agtorre/gocolorize/wercker.yml
generated
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
# This references the default golang container from
|
||||
# the Docker Hub: https://registry.hub.docker.com/u/library/golang/
|
||||
# If you want Google's container you would reference google/golang
|
||||
# Read more about containers on our dev center
|
||||
# http://devcenter.wercker.com/docs/containers/index.html
|
||||
box: golang
|
||||
# This is the build pipeline. Pipelines are the core of wercker
|
||||
# Read more about pipelines on our dev center
|
||||
# http://devcenter.wercker.com/docs/pipelines/index.html
|
||||
|
||||
# You can also use services such as databases. Read more on our dev center:
|
||||
# http://devcenter.wercker.com/docs/services/index.html
|
||||
# services:
|
||||
# - postgres
|
||||
# http://devcenter.wercker.com/docs/services/postgresql.html
|
||||
|
||||
# - mongo
|
||||
# http://devcenter.wercker.com/docs/services/mongodb.html
|
||||
build:
|
||||
# The steps that will be executed on build
|
||||
# Steps make up the actions in your pipeline
|
||||
# Read more about steps on our dev center:
|
||||
# http://devcenter.wercker.com/docs/steps/index.html
|
||||
steps:
|
||||
# Sets the go workspace and places you package
|
||||
# at the right place in the workspace tree
|
||||
- setup-go-workspace
|
||||
|
||||
# Gets the dependencies
|
||||
- script:
|
||||
name: go get
|
||||
code: |
|
||||
go get
|
||||
|
||||
# Build the project
|
||||
- script:
|
||||
name: go build
|
||||
code: |
|
||||
go build ./...
|
||||
|
||||
# Test the project
|
||||
- script:
|
||||
name: go test
|
||||
code: |
|
||||
go test ./...
|
||||
|
Reference in New Issue
Block a user