From 97afbaa64d88a4c6846918fb926ab87fa80db312 Mon Sep 17 00:00:00 2001 From: Kevin Pham Date: Wed, 29 Nov 2023 16:41:24 -0600 Subject: [PATCH] add ascii art --- README.md | 3 ++- cmd/main.go | 11 ++++++++--- internal/cli/art.go | 40 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 internal/cli/art.go diff --git a/README.md b/README.md index be1b96f..539f453 100644 --- a/README.md +++ b/README.md @@ -189,7 +189,8 @@ There is a basic ruleset available in a separate repository [ruleset.yaml](https To run a development server at http://localhost:8080: ```bash -echo "dev" > handlers/VERSION +echo "dev " > handlers/VERSION +echo "dev " > cmd/VERSION RULESET="./ruleset.yaml" go run cmd/main.go ``` diff --git a/cmd/main.go b/cmd/main.go index 554353a..ab9d8bf 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -22,6 +22,9 @@ var faviconData string //go:embed styles.css var cssData embed.FS +//go:embed VERSION +var version string + func main() { parser := argparse.NewParser("ladder", "Every Wall needs a Ladder") @@ -100,9 +103,10 @@ func main() { app := fiber.New( fiber.Config{ - Prefork: *prefork, - GETOnly: false, - ReadBufferSize: 4096 * 4, // increase max header size + Prefork: *prefork, + GETOnly: false, + ReadBufferSize: 4096 * 4, // increase max header size + DisableStartupMessage: true, }, ) @@ -158,5 +162,6 @@ func main() { app.Get("/*", handlers.NewProxySiteHandler(proxyOpts)) app.Post("/*", handlers.NewProxySiteHandler(proxyOpts)) + fmt.Println(cli.StartupMessage("1.0.1", *port, *ruleset)) log.Fatal(app.Listen(":" + *port)) } diff --git a/internal/cli/art.go b/internal/cli/art.go new file mode 100644 index 0000000..f3eeb29 --- /dev/null +++ b/internal/cli/art.go @@ -0,0 +1,40 @@ +package cli + +import "fmt" + +var art string = ` + _____╬═╬____________________________________________ + |_|__╬═╬___|___|___|___| EVERYWALL |___|___|___|___| + |___|╬═╬|___▄▄▌ ▄▄▄· ·▄▄▄▄ ·▄▄▄▄ ▄▄▄ .▄▄▄ __|_| + |_|__╬═╬___|██• ▐█ ▀█ ██▪ ██ ██▪ ██ ▀▄.▀·▀▄ █·|___| + |___|╬═╬|___██▪ ▄█▀▀█ ▐█· ▐█▌▐█· ▐█▌▐▀▀▪▄▐▀▀▄ __|_| + |_|__╬═╬___|▐█▌▐▌▐█ ▪▐▌██. ██ ██. ██ ▐█▄▄▌▐█•█▌|___| + |___|╬═╬|___.▀▀▀ ▀ ▀ ▀▀▀▀▀• ▀▀▀▀▀• ▀▀▀ .▀ ▀__|_| + |_|__╬═╬___|___|___|__ VERSION %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) + if ruleset == "" { + buf += " ! no ruleset specified.\n > for better performance, use a ruleset using --ruleset\n" + } else { + buf += fmt.Sprintf(" > using ruleset: %s\n", ruleset) + } + return colorizeNonASCII(buf) +} + +func colorizeNonASCII(input string) string { + result := "" + for _, r := range input { + if r > 127 { + // If the character is non-ASCII, color it blue + result += fmt.Sprintf("\033[94m%c\033[0m", r) + } else { + // ASCII characters remain unchanged + result += string(r) + } + } + return result +}