cmd/simdata: simple tool to dump race simdata
This commit is contained in:
@@ -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)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user