12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- package text
- import "fmt"
- const (
- redCode = "\x1b[31m"
- greenCode = "\x1b[32m"
- yellowCode = "\x1b[33m"
- blueCode = "\x1b[34m"
- magentaCode = "\x1b[35m"
- CyanCode = "\x1b[36m"
- boldCode = "\x1b[1m"
- ResetCode = "\x1b[0m"
- )
- // UseColor determines if package will emit colors.
- var UseColor = true
- func stylize(startCode, in string) string {
- if UseColor {
- return startCode + in + ResetCode
- }
- return in
- }
- func Red(in string) string {
- return stylize(redCode, in)
- }
- func Green(in string) string {
- return stylize(greenCode, in)
- }
- func yellow(in string) string {
- return stylize(yellowCode, in)
- }
- func Cyan(in string) string {
- return stylize(CyanCode, in)
- }
- func Magenta(in string) string {
- return stylize(magentaCode, in)
- }
- func Blue(in string) string {
- return stylize(blueCode, in)
- }
- func Bold(in string) string {
- return stylize(boldCode, in)
- }
- // ColorHash Colors text using a hashing algorithm. The same text will always produce the
- // same color while different text will produce a different color.
- func ColorHash(name string) (output string) {
- if !UseColor {
- return name
- }
- var hash uint = 5381
- for i := 0; i < len(name); i++ {
- hash = uint(name[i]) + ((hash << 5) + (hash))
- }
- return fmt.Sprintf("\x1b[%dm%s\x1b[0m", hash%6+31, name)
- }
|