package Color
|
|
|
|
import (
|
|
"fmt"
|
|
"regexp"
|
|
"runtime"
|
|
)
|
|
|
|
var (
|
|
Success = Green
|
|
Info = Teal
|
|
Warning = Yellow
|
|
Fatal = Red
|
|
)
|
|
|
|
var (
|
|
Black = Color("\033[1;30m%s\033[0m")
|
|
Red = Color("\033[1;31m%s\033[0m")
|
|
Green = Color("\033[1;32m%s\033[0m")
|
|
Yellow = Color("\033[1;33m%s\033[0m")
|
|
Purple = Color("\033[1;34m%s\033[0m")
|
|
Magenta = Color("\033[1;35m%s\033[0m")
|
|
Teal = Color("\033[1;36m%s\033[0m")
|
|
White = Color("\033[1;37m%s\033[0m")
|
|
)
|
|
|
|
func init() {
|
|
if runtime.GOOS != "windows" {
|
|
return
|
|
}
|
|
|
|
Black = Color("%s")
|
|
Red = Color("%s")
|
|
Green = Color("%s")
|
|
Yellow = Color("%s")
|
|
Purple = Color("%s")
|
|
Magenta = Color("%s")
|
|
Teal = Color("%s")
|
|
White = Color("%s")
|
|
}
|
|
|
|
func Color(colorString string) func(...interface{}) string {
|
|
var sprint func(args ...interface{}) string = func(args ...interface{}) string {
|
|
return fmt.Sprintf(colorString,
|
|
fmt.Sprint(args...))
|
|
}
|
|
return sprint
|
|
}
|
|
|
|
func Strip(s string) string {
|
|
var (
|
|
reg *regexp.Regexp
|
|
res string
|
|
)
|
|
reg = regexp.MustCompile(`\033\[.{1,4}m`)
|
|
res = reg.ReplaceAllString(s, "${1}")
|
|
return res
|
|
}
|