From ef50c81aa612e1c1d5af6b48658bd727dfbf1a8f Mon Sep 17 00:00:00 2001 From: Kevin Pham Date: Thu, 30 Nov 2023 22:14:50 -0600 Subject: [PATCH] improve version display start message --- .air.toml | 2 +- cmd/main.go | 2 +- internal/cli/art.go | 24 ++++++++++++++++++------ 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/.air.toml b/.air.toml index 4db896c..65789a7 100644 --- a/.air.toml +++ b/.air.toml @@ -21,7 +21,7 @@ tmp_dir = "tmp" poll = false poll_interval = 0 post_cmd = [] - pre_cmd = ["echo 'dev' > handlers/VERSION echo 'dev' > cmd/VERSION"] + pre_cmd = ["git rev-parse --short HEAD > handlers/VERSION; git rev-parse --short HEAD > cmd/VERSION"] rerun = false rerun_delay = 500 send_interrupt = false diff --git a/cmd/main.go b/cmd/main.go index e4faf49..a7840f0 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -189,6 +189,6 @@ func main() { app.All("/*", handlers.NewProxySiteHandler(proxyOpts)) - fmt.Println(cli.StartupMessage("1.0.0", *port, *ruleset)) + fmt.Println(cli.StartupMessage(version, *port, *ruleset)) log.Fatal(app.Listen(":" + *port)) } diff --git a/internal/cli/art.go b/internal/cli/art.go index f3eeb29..ccae8e7 100644 --- a/internal/cli/art.go +++ b/internal/cli/art.go @@ -1,6 +1,9 @@ package cli -import "fmt" +import ( + "fmt" + "strings" +) var art string = ` _____╬═╬____________________________________________ @@ -10,21 +13,30 @@ var art string = ` |___|╬═╬|___██▪ ▄█▀▀█ ▐█· ▐█▌▐█· ▐█▌▐▀▀▪▄▐▀▀▄ __|_| |_|__╬═╬___|▐█▌▐▌▐█ ▪▐▌██. ██ ██. ██ ▐█▄▄▌▐█•█▌|___| |___|╬═╬|___.▀▀▀ ▀ ▀ ▀▀▀▀▀• ▀▀▀▀▀• ▀▀▀ .▀ ▀__|_| - |_|__╬═╬___|___|___|__ VERSION %s __|___|___|___| + |_|__╬═╬___|___|___|_ VERSION %-7s__|___|___|___| |___|╬═╬|____|___|___|___|___|___|___|___|___|___|_| + ╬═╬ + ╬═╬ %s ` func StartupMessage(version string, port string, ruleset string) string { - buf := fmt.Sprintf(art, version) - buf += fmt.Sprintf("\n > listening on http://localhost:%s\n", port) + version = strings.Trim(version, " ") + version = strings.Trim(version, "\n") + link := createHyperlink("http://localhost:" + port) + buf := fmt.Sprintf(art, version, link) if ruleset == "" { - buf += " ! no ruleset specified.\n > for better performance, use a ruleset using --ruleset\n" + buf += "\n ! no ruleset specified.\n > for better performance, use a ruleset using --ruleset\n" } else { - buf += fmt.Sprintf(" > using ruleset: %s\n", ruleset) + buf += fmt.Sprintf("\n > using ruleset: %s\n", ruleset) } return colorizeNonASCII(buf) } +func createHyperlink(url string) string { + //return fmt.Sprintf("\033]8;;%s\a%s\033]8;;\a", url, url) + return fmt.Sprintf("\033[4m%s\033[0m", url) +} + func colorizeNonASCII(input string) string { result := "" for _, r := range input {