From 3939a545135d0e42713252d54bfd24fac30cb6c1 Mon Sep 17 00:00:00 2001 From: "Zed A. Shaw" Date: Fri, 4 Jul 2025 13:01:12 -0400 Subject: [PATCH] Testing out the tools/cmd pattern with go get tool --- main.go | 56 ++------------------------------------------ tools/cmd/dostuff.go | 9 +++++++ 2 files changed, 11 insertions(+), 54 deletions(-) create mode 100644 tools/cmd/dostuff.go diff --git a/main.go b/main.go index be08d33..ca9230e 100644 --- a/main.go +++ b/main.go @@ -2,10 +2,6 @@ package main import ( "log" - "strings" - "io/fs" - "fmt" - "path/filepath" "os" "os/signal" "syscall" @@ -18,57 +14,9 @@ import ( "zedshaw.games/webapp/api" "zedshaw.games/webapp/data" + "zedshaw.games/webapp/zed" ) -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) @@ -82,7 +30,7 @@ func main() { StrictRouting: true, }) - RenderPages("./pages", "./public") + zed.RenderPages("./pages", "./public") app.Use(logger.New()) app.Use(recov.New()) diff --git a/tools/cmd/dostuff.go b/tools/cmd/dostuff.go new file mode 100644 index 0000000..eff0db9 --- /dev/null +++ b/tools/cmd/dostuff.go @@ -0,0 +1,9 @@ +package main + +import ( + "log" +) + +func main() { + log.Println("I DO THING!") +}