From eaad0f29c30b12689632f2dc29d38f9594bd3ca1 Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Sun, 14 May 2023 13:06:13 -0700 Subject: [PATCH] slog --- cmd/dndcheck/main.go | 45 ++++++++++++++++++++++++++++---------------- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 32 insertions(+), 19 deletions(-) diff --git a/cmd/dndcheck/main.go b/cmd/dndcheck/main.go index b6864dd..c31eb35 100644 --- a/cmd/dndcheck/main.go +++ b/cmd/dndcheck/main.go @@ -4,13 +4,13 @@ import ( "flag" "fmt" "io/fs" - "log" "os" "path/filepath" "sort" "strings" "github.com/samber/lo" + "golang.org/x/exp/slog" ) var mapSigs = map[string]string{ @@ -22,18 +22,20 @@ func main() { flag.Parse() - if *root == "" { - log.Fatal("please specify --root") - } - - log.Printf("validating: %s", *root) - rootFS := os.DirFS(*root) + l := slog.New(slog.NewTextHandler(os.Stderr, nil)) - validateMaps(lo.Must(fs.Sub(rootFS, "Maps"))) + l.Info("validating...", + "root", *root, + ) + + ok := validateMaps(l, lo.Must(fs.Sub(rootFS, "Maps"))) + if !ok { + os.Exit(1) + } } -func validateMaps(mapsFS fs.FS) { +func validateMaps(l *slog.Logger, mapsFS fs.FS) bool { entries := lo.Must(mapsFS.(fs.ReadDirFS).ReadDir(".")) for _, entry := range entries { @@ -41,22 +43,33 @@ func validateMaps(mapsFS fs.FS) { continue } - log.Printf("map: %s", entry.Name()) - - mapFS := lo.Must(fs.Sub(mapsFS, entry.Name())) - validateMap(mapFS) + ok := validateMap( + l.With("map", entry.Name()), + lo.Must(fs.Sub(mapsFS, entry.Name())), + ) + if !ok { + return false + } } + + return true } -func validateMap(mapFS fs.FS) { +func validateMap(l *slog.Logger, mapFS fs.FS) bool { sig := getDirSig(mapFS) t := mapSigs[sig] if t == "" { - log.Fatalf("\tunrecognized signature: %s", sig) + l.Error("unrecognized signature", + "signature", sig, + ) + return false } - log.Printf("\ttype: %s", t) + l.Info("valid map", + "source", t, + ) + return true } func getDirSig(root fs.FS) string { diff --git a/go.mod b/go.mod index 05606f7..981a326 100644 --- a/go.mod +++ b/go.mod @@ -4,4 +4,4 @@ go 1.20 require github.com/samber/lo v1.38.1 -require golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect +require golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea diff --git a/go.sum b/go.sum index 7a26b7e..b4e97a4 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,4 @@ github.com/samber/lo v1.38.1 h1:j2XEAqXKb09Am4ebOg31SpvzUTTs6EN3VfgeLUhPdXM= github.com/samber/lo v1.38.1/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= -golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM= -golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= +golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQJHQdp89IZBA/+azVC4= +golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w=