From 007e2de369f9fc26da3237646de14f2af5052ee8 Mon Sep 17 00:00:00 2001 From: ewy Date: Fri, 22 May 2026 16:54:49 +0200 Subject: initial commit --- main.go | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 main.go (limited to 'main.go') diff --git a/main.go b/main.go new file mode 100644 index 0000000..777a067 --- /dev/null +++ b/main.go @@ -0,0 +1,58 @@ +package main + +import ( + "github.com/spf13/pflag" + _ "net/http/pprof" + "os" + "os/exec" + "os/signal" + "sts2stats/api" + "sts2stats/ingest" + "sts2stats/spool" + "sts2stats/stats" + "sts2stats/storage" +) + +var Types = []any{ + stats.Act{}, + stats.GameVersion{}, + stats.AncientChoice{}, + stats.CardChoice{}, + stats.RunStat{}, +} + +var Loaders = map[string]stats.LoadFunc{ + //"card": stats.LoadCards, +} + +func main() { + pflag.Parse() + go api.Init() + err := storage.Init(Types...) + for i, l := range Loaders { + err := l() + if err != nil { + spool.Panic("during %v: %v\n", i, err) + } + } + defer storage.Close() + if err != nil { + spool.Panic("%v\n", err) + } + root := must(os.OpenRoot(".")) + defer root.Close() + go func() { must[any](nil, ingest.AddProfile(root.FS(), 0)) }() + must[any](nil, storage.UI()) + exec.Command("xdg-open", "http://localhost:4213/").Run() + + c := make(chan os.Signal, 1) + go signal.Notify(c, os.Interrupt, os.Kill) + <-c +} + +func must[O any](out O, err error) O { + if err != nil { + spool.Panic("%v\n", err) + } + return out +} -- cgit v1.3.1