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