From 0080e9e3118b10935b66a681934cda9403b19034 Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Sat, 20 Feb 2021 15:14:20 +1100 Subject: [PATCH] Gimme some colour --- v2/cmd/wails/main.go | 9 ++++ v2/go.mod | 2 +- v2/go.sum | 7 ++- v2/internal/colour/colour.go | 89 ++++++++++++++++++++++++++++++++++++ 4 files changed, 104 insertions(+), 3 deletions(-) create mode 100644 v2/internal/colour/colour.go diff --git a/v2/cmd/wails/main.go b/v2/cmd/wails/main.go index 01eee20bf..6dbd57209 100644 --- a/v2/cmd/wails/main.go +++ b/v2/cmd/wails/main.go @@ -1,8 +1,11 @@ package main import ( + "fmt" "os" + "github.com/wailsapp/wails/v2/internal/colour" + "github.com/wailsapp/wails/v2/cmd/wails/internal/commands/update" "github.com/leaanthony/clir" @@ -19,12 +22,18 @@ func fatal(message string) { os.Exit(1) } +func banner(_ *clir.Cli) string { + return fmt.Sprintf("%s %s - Go/HTML Application Framework", colour.Yellow("Wails"), colour.DarkRed(version)) +} + func main() { var err error app := clir.NewCli("Wails", "Go/HTML Application Framework", version) + app.SetBannerFunction(banner) + build.AddBuildSubcommand(app, os.Stdout) err = initialise.AddSubcommand(app, os.Stdout) if err != nil { diff --git a/v2/go.mod b/v2/go.mod index a89cbcbea..309bab2aa 100644 --- a/v2/go.mod +++ b/v2/go.mod @@ -20,9 +20,9 @@ require ( github.com/tdewolff/minify v2.3.6+incompatible github.com/tdewolff/parse v2.3.4+incompatible // indirect github.com/tdewolff/test v1.0.6 // indirect + github.com/wzshiming/ctc v1.2.3 github.com/xyproto/xpm v1.2.1 golang.org/x/net v0.0.0-20200822124328-c89045814202 - golang.org/x/sync v0.0.0-20201207232520-09787c993a3a golang.org/x/sys v0.0.0-20200724161237-0e2f3a69832c golang.org/x/tools v0.0.0-20200902012652-d1954cc86c82 nhooyr.io/websocket v1.8.6 diff --git a/v2/go.sum b/v2/go.sum index b8cc83b80..1c9268be2 100644 --- a/v2/go.sum +++ b/v2/go.sum @@ -78,6 +78,10 @@ github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= +github.com/wzshiming/ctc v1.2.3 h1:q+hW3IQNsjIlOFBTGZZZeIXTElFM4grF4spW/errh/c= +github.com/wzshiming/ctc v1.2.3/go.mod h1:2tVAtIY7SUyraSk0JxvwmONNPFL4ARavPuEsg5+KA28= +github.com/wzshiming/winseq v0.0.0-20200112104235-db357dc107ae h1:tpXvBXC3hpQBDCc9OojJZCQMVRAbT3TTdUMP8WguXkY= +github.com/wzshiming/winseq v0.0.0-20200112104235-db357dc107ae/go.mod h1:VTAq37rkGeV+WOybvZwjXiJOicICdpLCN8ifpISjK20= github.com/xyproto/xpm v1.2.1 h1:trdvGjjWBsOOKzBBUPT6JvaIQM3acJEEYfbxN7M96wg= github.com/xyproto/xpm v1.2.1/go.mod h1:cMnesLsD0PBXLgjDfTDEaKr8XyTFsnP1QycSqRw7BiY= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -92,11 +96,10 @@ golang.org/x/net v0.0.0-20200822124328-c89045814202 h1:VvcQYSHwXgi7W+TpUR6A9g6Up golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a h1:DcqTD9SDLc+1P/r1EmRBwnVsrOwW+kk2vWf9n+1sGhs= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200107162124-548cf772de50/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200724161237-0e2f3a69832c h1:UIcGWL6/wpCfyGuJnRFJRurA+yj8RrW7Q6x2YMCXt6c= diff --git a/v2/internal/colour/colour.go b/v2/internal/colour/colour.go new file mode 100644 index 000000000..a81345533 --- /dev/null +++ b/v2/internal/colour/colour.go @@ -0,0 +1,89 @@ +package colour + +import ( + "fmt" + "strings" + + "github.com/wzshiming/ctc" +) + +func Col(col ctc.Color, text string) string { + return fmt.Sprintf("%s%s%s", col, text, ctc.Reset) +} + +func Yellow(text string) string { + return Col(ctc.ForegroundBrightYellow, text) +} + +func Red(text string) string { + return Col(ctc.ForegroundBrightRed, text) +} + +func Blue(text string) string { + return Col(ctc.ForegroundBrightBlue, text) +} + +func Green(text string) string { + return Col(ctc.ForegroundBrightGreen, text) +} + +func Cyan(text string) string { + return Col(ctc.ForegroundBrightCyan, text) +} + +func Magenta(text string) string { + return Col(ctc.ForegroundBrightMagenta, text) +} + +func White(text string) string { + return Col(ctc.ForegroundBrightWhite, text) +} + +func Black(text string) string { + return Col(ctc.ForegroundBrightBlack, text) +} + +func DarkYellow(text string) string { + return Col(ctc.ForegroundYellow, text) +} + +func DarkRed(text string) string { + return Col(ctc.ForegroundRed, text) +} + +func DarkBlue(text string) string { + return Col(ctc.ForegroundBlue, text) +} + +func DarkGreen(text string) string { + return Col(ctc.ForegroundGreen, text) +} + +func DarkCyan(text string) string { + return Col(ctc.ForegroundCyan, text) +} + +func DarkMagenta(text string) string { + return Col(ctc.ForegroundMagenta, text) +} + +func DarkWhite(text string) string { + return Col(ctc.ForegroundWhite, text) +} + +func DarkBlack(text string) string { + return Col(ctc.ForegroundBlack, text) +} + +var rainbowCols = []func(string) string{Red, Yellow, Green, Cyan, Blue, Magenta} + +func Rainbow(text string) string { + var builder strings.Builder + + for i := 0; i < len(text); i++ { + fn := rainbowCols[i%len(rainbowCols)] + builder.WriteString(fn(text[i : i+1])) + } + + return builder.String() +}