Last active
April 8, 2024 14:25
-
-
Save ik5/d8ecde700972d4378d87 to your computer and use it in GitHub Desktop.
Simple golang expirement with ANSI colors
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
// http://play.golang.org/p/jZ5pa944O1 <- will not display the colors | |
import "fmt" | |
const ( | |
InfoColor = "\033[1;34m%s\033[0m" | |
NoticeColor = "\033[1;36m%s\033[0m" | |
WarningColor = "\033[1;33m%s\033[0m" | |
ErrorColor = "\033[1;31m%s\033[0m" | |
DebugColor = "\033[0;36m%s\033[0m" | |
) | |
func main() { | |
fmt.Printf(InfoColor, "Info") | |
fmt.Println("") | |
fmt.Printf(NoticeColor, "Notice") | |
fmt.Println("") | |
fmt.Printf(WarningColor, "Warning") | |
fmt.Println("") | |
fmt.Printf(ErrorColor, "Error") | |
fmt.Println("") | |
fmt.Printf(DebugColor, "Debug") | |
fmt.Println("") | |
} |
I built on this, changed a few small things:
package main
import "fmt"
var (
Info = Teal
Warn = Yellow
Fata = 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 Color(colorString string) func(...interface{}) string {
sprint := func(args ...interface{}) string {
return fmt.Sprintf(colorString,
fmt.Sprint(args...))
}
return sprint
}
func main() {
fmt.Println(Info("hello, world!"))
}
Thanks!
@zaydek this is awesome.
<3
🤝
Awesome
Awesome indeed
Awesome
None of this seems to work for me. (I'm on a Windows 10 computer using go1.15.5 windows/amd64
)
None of this seems to work for me. (I'm on a Windows 10 computer using
go1.15.5 windows/amd64
)
try on win10 terminal ?
the following link writes that in order to enable colors in Windows terminal you need to change the registry a bit:
HKEY_CURRENT_USER\Console\VirtualTerminalLevel
"VirtualTerminalLevel"=dword:00000001
Rainbow Console Text:
package main
import (
"fmt"
"math/rand"
"os"
"time"
)
func rainbow(i string, timeout int) {
colors := []string{
"\033[;31m",
"\033[;34m",
"\033[;32m",
"\033[;35m",
//Add more if needed
}
for {
n := rand.Int() % len(colors)
fmt.Printf("\r%s%s", colors[n], i)
os.Stdout.Sync()
time.Sleep(time.Millisecond * time.Duration(timeout))
}
}
func main() {
rainbow("Text", 300) // Text | Timeout
}
@zaydek-old in case you're colorblind and didn't know, your colors are wrong. See the original post for correct colors.
❤️
Thank you. Very helpful for go test. Anything that fails prints Red so I can easily spot it. (on Linux)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Also: