From f476605ecfe29affbeb93b2602de25c05d67c18b Mon Sep 17 00:00:00 2001 From: "Zed A. Shaw" Date: Fri, 4 Jul 2025 11:31:15 -0400 Subject: [PATCH] Came up with the pages/ directory that's templates which are rendered into public for the static pages. --- api/{controllers.go => handlers.go} | 48 -------------- main.go | 56 +++++++++++++++++ pages/alpine_test.html | 9 +++ pages/base.html | 25 ++++++++ pages/error/index.html | 26 ++++++++ pages/game/1/turings-tarpit/index.html | 61 ++++++++++++++++++ pages/game/index.html | 76 ++++++++++++++++++++++ pages/index.html | 87 ++++++++++++++++++++++++++ pages/live/index.html | 57 +++++++++++++++++ pages/login/index.html | 44 +++++++++++++ pages/register/index.html | 46 ++++++++++++++ pages/stream/1/index.html | 81 ++++++++++++++++++++++++ pages/stream/index.html | 68 ++++++++++++++++++++ public/alpine_test.html | 55 ++++++++++++++++ public/base.html | 46 ++++++++++++++ public/game/index.html | 21 +++++++ public/stream/1/index.html | 16 +++++ public/stream/index.html | 21 +++++++ util/util.go | 13 ---- 19 files changed, 795 insertions(+), 61 deletions(-) rename api/{controllers.go => handlers.go} (67%) create mode 100644 pages/alpine_test.html create mode 100644 pages/base.html create mode 100644 pages/error/index.html create mode 100644 pages/game/1/turings-tarpit/index.html create mode 100644 pages/game/index.html create mode 100644 pages/index.html create mode 100644 pages/live/index.html create mode 100644 pages/login/index.html create mode 100644 pages/register/index.html create mode 100644 pages/stream/1/index.html create mode 100644 pages/stream/index.html delete mode 100644 util/util.go diff --git a/api/controllers.go b/api/handlers.go similarity index 67% rename from api/controllers.go rename to api/handlers.go index 8a2197f..4d696d8 100644 --- a/api/controllers.go +++ b/api/handlers.go @@ -2,17 +2,12 @@ package api import ( "log" - "strings" "time" - "io/fs" - "os" - "path/filepath" "github.com/gofiber/fiber/v2" _ "github.com/mattn/go-sqlite3" sq "github.com/Masterminds/squirrel" "github.com/gofiber/fiber/v2/middleware/session" - "github.com/gofiber/template/html/v2" "zedshaw.games/webapp/data" ) @@ -115,53 +110,10 @@ func PostApiLink(c *fiber.Ctx) error { return IfErrNil(err, c) } -func RenderPages(pages_path string, target string) { - - engine := html.New(pages_path, ".html") - engine.Load() - - err := filepath.WalkDir(pages_path, - func(path string, d fs.DirEntry, err error) error { - if !d.IsDir() { - if err != nil { log.Printf("ERROR: %v", err) } - - dir := filepath.Dir(path) - err = os.MkdirAll(dir, 0750) - if err != nil { log.Fatalf("ERROR making dir %s, %v", dir, err) } - - split_path := strings.Split(path, string(os.PathSeparator))[1:] - source_name := filepath.Join(split_path...) - ext := filepath.Ext(source_name) - name, found := strings.CutSuffix(source_name, ext) - - if found { - log.Printf("name=%s, ext=%s, dir=%s, found=%v", name, ext, dir, found) - - prefixed_path := append([]string{target}, split_path...) - - target_path := filepath.Join(prefixed_path...) - log.Printf("target_path: %s", target_path) - - out, err := os.OpenFile(target_path, os.O_RDWR|os.O_CREATE, 0644) - if err != nil { log.Fatalf("ERROR writing file %s", target_path) } - - err = engine.Render(out, "game/1/turings-tarpit/index", fiber.Map{"Title": "Hello"}) - if err != nil { log.Fatalf("failed to render %s, error=%v", path, err) } - out.Close() - } - } - - return nil - }) - - if err != nil { log.Fatalf("can't walk content") } -} func Setup(app *fiber.App) { STORE = session.New() - RenderPages("./pages", "./public") - app.Static("/", "./public", fiber.Static{ Compress: false, CacheDuration: 1 * time.Nanosecond, diff --git a/main.go b/main.go index 9eb52a8..be08d33 100644 --- a/main.go +++ b/main.go @@ -2,6 +2,10 @@ package main import ( "log" + "strings" + "io/fs" + "fmt" + "path/filepath" "os" "os/signal" "syscall" @@ -16,6 +20,56 @@ import ( "zedshaw.games/webapp/data" ) +func Fail(err error, format string, v ...any) error { + err_format := fmt.Sprintf("ERROR: %v; %s", err, format) + log.Printf(err_format, v...) + return err +} + +func RenderPages(pages_path string, target string) { + engine := html.New(pages_path, ".html") + engine.Load() + + err := filepath.WalkDir(pages_path, + func(path string, d fs.DirEntry, err error) error { + if !d.IsDir() { + if err != nil { return Fail(err, "path: %s", path); } + + dir := filepath.Dir(path) + err = os.MkdirAll(dir, 0750) + if err != nil { + return Fail(err, "making dir %s", dir); + } + + split_path := strings.Split(path, string(os.PathSeparator))[1:] + source_name := strings.Join(split_path, "/") // Render wants / even on windows + ext := filepath.Ext(source_name) + template_name, found := strings.CutSuffix(source_name, ext) + + if found && ext == ".html" { + prefixed_path := append([]string{target}, split_path...) + + target_path := filepath.Join(prefixed_path...) + + // compare time stamps and skip if not newer + + out, err := os.OpenFile(target_path, os.O_RDWR|os.O_CREATE, 0644) + if err != nil { return Fail(err, "writing file %s", target_path) } + + err = engine.Render(out, template_name, fiber.Map{"Title": "Hello"}) + if err != nil { return Fail(err, "failed to render %s", path) } + + log.Printf("RENDER: %s -> %s", template_name, target_path) + out.Close() + } + } + + return nil + }) + + if err != nil { log.Fatalf("can't walk content") } +} + func main() { log.SetFlags(log.LstdFlags | log.Lshortfile) @@ -28,6 +82,8 @@ func main() { StrictRouting: true, }) + RenderPages("./pages", "./public") + app.Use(logger.New()) app.Use(recov.New()) diff --git a/pages/alpine_test.html b/pages/alpine_test.html new file mode 100644 index 0000000..a6a81d8 --- /dev/null +++ b/pages/alpine_test.html @@ -0,0 +1,9 @@ + + + + + + +

+ + diff --git a/pages/base.html b/pages/base.html new file mode 100644 index 0000000..db8b9e6 --- /dev/null +++ b/pages/base.html @@ -0,0 +1,25 @@ + + + + + + + + ZedShaw's Game Thing + + + + +
+ 🏑 Zed's Game Dev Website Yay +
+ + + + + + + + diff --git a/pages/error/index.html b/pages/error/index.html new file mode 100644 index 0000000..f828bf6 --- /dev/null +++ b/pages/error/index.html @@ -0,0 +1,26 @@ + + + + + + + + ZedShaw's Game Thing + + + + +
+ 🏑 Zed's Game Dev Website Yay +
+ + +

ERROR

+

You have an error.

+
+ + + + diff --git a/pages/game/1/turings-tarpit/index.html b/pages/game/1/turings-tarpit/index.html new file mode 100644 index 0000000..8c978be --- /dev/null +++ b/pages/game/1/turings-tarpit/index.html @@ -0,0 +1,61 @@ + + + + + + + + ZedShaw's Game Thing + + + + + + +
+ 🏑 Zed's Game Dev Website Yay +
+ + + Gameplay Demo Video + + +

Title

+ + + Some Image + +

Description

+
+
+ + + +

Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+
+ + +

Current Status

+

Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+
+ + +

Planned Work

+

Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+
+ + +

Read The Code

+

Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+ +
+ +
+ + + + diff --git a/pages/game/index.html b/pages/game/index.html new file mode 100644 index 0000000..6f3e316 --- /dev/null +++ b/pages/game/index.html @@ -0,0 +1,76 @@ + + + + + + + + ZedShaw's Game Thing + + + + + + +
+ 🏑 Zed's Game Dev Website Yay +
+ + + +

Zed's Trash Ass Games

+ +

More fun than a barrel full of monkeys with syphilus. +

+
+ +
+ + + + + + + Left Image +
+

Checkout my Git

+

I put al of my code online for people to read and study. If you're curious about the code behind my games or anything else I make then take a look at my git. It's like a buffet of half-finished genius.

+ + +
+
+
+ + +
+ + + + +x DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+ + + +

Planned Work

+

Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+
+ + +

Read The Code

+

Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+ +
+ + + + + + diff --git a/pages/index.html b/pages/index.html new file mode 100644 index 0000000..572d2fc --- /dev/null +++ b/pages/index.html @@ -0,0 +1,87 @@ + + + + + + + + ZedShaw's Game Thing + + + +
+ 🏑 Zed's Game Dev Website Yay +
+ + +

Zed's Game Dev Website

+ + + + + + + +

Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro. De carne lumbering animata corpora quaeritis. Summus brains sit​​, morbo vel maleficia? De apocalypsi gorger omero undead survivor dictum mauris. Hi mindless mortuis soulless creaturas, imo evil stalking monstra adventus resi dentevil vultus comedat cerebella viventium. Qui animated corpse, cricket bat max brucks terribilem incessu zomby. +

+
+ + + + Left Image +
+

I stream on Twitch.

+ +

I stream every day at 10AM/10PM EST time. 60% of the time it's a chill laid back stream with only programming and a bit of talking about programming. 30% of the time it's art for games I'm making. 10% of the time it's games I'm playing.

+ + +
+
+
+ + +

Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro. De carne lumbering animata corpora quaeritis. Summus brains sit​​, morbo vel maleficia? De apocalypsi gorger omero undead survivor dictum mauris. Hi mindless mortuis soulless creaturas, imo evil stalking monstra adventus resi dentevil vultus comedat cerebella viventium. Qui animated corpse, cricket bat max brucks terribilem incessu zomby. +

+
+ + + +
+

Zed's Trash Ass Games

+

Are you a fan of retro styled half-assed but fun games? Me too, so here's my games I've made with that theme. Think "it's the late 80s and nobody knows how to make a game" when you play these and you'll enjoy every minute of it.

+ + +
+ Right Image +
+
+ + +

Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro. De carne lumbering animata corpora quaeritis. Summus brains sit​​, morbo vel maleficia? De apocalypsi gorger omero undead survivor dictum mauris. Hi mindless mortuis soulless creaturas, imo evil stalking monstra adventus resi dentevil vultus comedat cerebella viventium. Qui animated corpse, cricket bat max brucks terribilem incessu zomby. +

+
+ + + + Left Image +
+

Checkout my Git

+

I put al of my code online for people to read and study. If you're curious about the code behind my games or anything else I make then take a look at my git. It's like a buffet of half-finished genius.

+ + +
+
+
+ + +

Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro. De carne lumbering animata corpora quaeritis. Summus brains sit​​, morbo vel maleficia? De apocalypsi gorger omero undead survivor dictum mauris. Hi mindless mortuis soulless creaturas, imo evil stalking monstra adventus resi dentevil vultus comedat cerebella viventium. Qui animated corpse, cricket bat max brucks terribilem incessu zomby. +

+
+ +
+ + + + diff --git a/pages/live/index.html b/pages/live/index.html new file mode 100644 index 0000000..235a9f3 --- /dev/null +++ b/pages/live/index.html @@ -0,0 +1,57 @@ + + + + + + + + ZedShaw's Game Thing + + + + + + +
+ 🏑 Zed's Game Dev Website Yay +
+ + + + + Stream Viewer + + + +

Links Found in Chat

+
    + +
+
+ +
+ + Submit a Link + + + + + + + + + +
+ +
+ + + + diff --git a/pages/login/index.html b/pages/login/index.html new file mode 100644 index 0000000..c04a523 --- /dev/null +++ b/pages/login/index.html @@ -0,0 +1,44 @@ + + + + + + + + ZedShaw's Game Thing + + + +
+ 🏑 Zed's Game Dev Website Yay +
+ + +

Login

+ +
+ +

Login

+ + + + + + + + + + + + +
+
+ +
+
+ + + + diff --git a/pages/register/index.html b/pages/register/index.html new file mode 100644 index 0000000..fda03b8 --- /dev/null +++ b/pages/register/index.html @@ -0,0 +1,46 @@ + + + + + + + + ZedShaw's Game Thing + + + +
+ 🏑 Zed's Game Dev Website Yay +
+ + +

Login

+ +
+ +

Register

+ + + + + + + + + + + + + + +
+
+ +
+
+ + + + diff --git a/pages/stream/1/index.html b/pages/stream/1/index.html new file mode 100644 index 0000000..78c6ba1 --- /dev/null +++ b/pages/stream/1/index.html @@ -0,0 +1,81 @@ + + + + + + + + ZedShaw's Game Thing + + + + + + +
+ 🏑 Zed's Game Dev Website Yay +
+ + + + +

+ +
+

+
+
+ + +

Qui animated corpse, cricket bat max brucks terribilem incessu zomby. The voodoo sacerdos flesh eater, suscitat mortuos comedere carnem virus. Zonbi tattered for solum oculi eorum defunctis go lum cerebro. Nescio brains an Undead zombies. Sicut malus putrid voodoo horror.

+
+ + +

Links Posted

+ +
    + +
+
+ + + + Left Image +
+

I stream on Twitch.

+ +

I stream every day at 10AM/10PM EST time. 60% of the time it's a chill laid back stream with only programming and a bit of talking about programming. 30% of the time it's art for games I'm making. 10% of the time it's games I'm playing.

+ + +
+
+
+ +
+ + + + +i poutine jianbing chambray.

+ + + +

Read The Code

+

Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+ +
+ + + + + + diff --git a/pages/stream/index.html b/pages/stream/index.html new file mode 100644 index 0000000..e2e025c --- /dev/null +++ b/pages/stream/index.html @@ -0,0 +1,68 @@ + + + + + + + + ZedShaw's Game Thing + + + + + + + +
+ 🏑 Zed's Game Dev Website Yay +
+ + + +

Past Streams

+

This is where you can checkout information we dropped in a past stream. Did I post a link and you need to remember it? Did someone in chat mention something? Here's where you find it.

+
+ + + + + +
+ + + + +ral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+ + + +

Planned Work

+

Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+
+ + +

Read The Code

+

Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+ +
+ + + + + + diff --git a/public/alpine_test.html b/public/alpine_test.html index a6a81d8..007810f 100644 --- a/public/alpine_test.html +++ b/public/alpine_test.html @@ -7,3 +7,58 @@

+s"> + ZedShaw's Game Thing + + + + + + +
+ 🏑 Zed's Game Dev Website Yay +
+ + + Gameplay Demo Video + + +

Title

+ + + Some Image + +

Description

+
+
+ + + +

Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+
+ + +

Current Status

+

Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+
+ + +

Planned Work

+

Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+
+ + +

Read The Code

+

Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+ +
+ +
+ + + + diff --git a/public/base.html b/public/base.html index db8b9e6..123e0a3 100644 --- a/public/base.html +++ b/public/base.html @@ -23,3 +23,49 @@ +a()" x-data="{Game: {}}"> +
+ 🏑 Zed's Game Dev Website Yay +
+ + + Gameplay Demo Video + + +

Title

+ + + Some Image + +

Description

+
+
+ + + +

Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+
+ + +

Current Status

+

Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+
+ + +

Planned Work

+

Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+
+ + +

Read The Code

+

Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+ +
+ +
+ + + + diff --git a/public/game/index.html b/public/game/index.html index fbd073b..6f3e316 100644 --- a/public/game/index.html +++ b/public/game/index.html @@ -46,6 +46,27 @@ + + + + + +x DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+ + + +

Planned Work

+

Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+
+ + +

Read The Code

+

Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+ +
+ +i poutine jianbing chambray.

+ + + +

Read The Code

+

Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+ +
+ + + + + + diff --git a/public/stream/index.html b/public/stream/index.html index ec64d86..e2e025c 100644 --- a/public/stream/index.html +++ b/public/stream/index.html @@ -45,3 +45,24 @@ +ral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+ + + +

Planned Work

+

Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+
+ + +

Read The Code

+

Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.

+ +
+ + + + + + diff --git a/util/util.go b/util/util.go deleted file mode 100644 index 245747b..0000000 --- a/util/util.go +++ /dev/null @@ -1,13 +0,0 @@ -package util - -import ( - "log" -) - -func HandlePanic(message string) func() { - return func() { - if r := recover(); r != nil { - log.Println(message, r) - } - } -}