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) } }