cmd/simdata: simple tool to dump race simdata

This commit is contained in:
2026-10-18 13:09:10 -04:00
parent cf00bb54c5
commit 75558f35ba
+59
View File
@@ -0,0 +1,59 @@
package main
import (
"encoding/json"
"flag"
"fmt"
"os"
"git.sunturtle.xyz/zephyr/horse/umadump/replay"
)
func main() {
var out string
flag.StringVar(&out, "o", "", "output `file`")
flag.Parse()
r := os.Stdin
if flag.NArg() > 0 {
f, err := os.Open(flag.Arg(0))
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(2)
}
r = f
defer f.Close()
}
w := os.Stdout
if out != "" {
f, err := os.Create(out)
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(2)
}
w = f
defer f.Close()
}
var race replay.Race
d := json.NewDecoder(r)
d.DisallowUnknownFields()
if err := d.Decode(&race); err != nil {
fmt.Fprintln(os.Stderr, "replay:", err)
os.Exit(1)
}
simdata, err := replay.DecodeSim(race.SimDataBase64)
if err != nil {
fmt.Fprintln(os.Stderr, "simdata:", err)
}
b, err := json.Marshal(simdata)
if err != nil {
panic(err)
}
_, err = w.Write(b)
if err != nil {
fmt.Fprintln(os.Stderr, err)
}
}