diff options
| author | ewy <ewy0@protonmail.com> | 2026-05-22 16:54:49 +0200 |
|---|---|---|
| committer | ewy <ewy0@protonmail.com> | 2026-05-22 16:54:49 +0200 |
| commit | 007e2de369f9fc26da3237646de14f2af5052ee8 (patch) | |
| tree | f81557385628fc93f1ef9616b8bc75a304f9d740 /main.go | |
initial commit
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 58 |
1 files changed, 58 insertions, 0 deletions
@@ -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 +} |
