| 521 | } |
| 522 | |
| 523 | func writeCurrentSummary(cfg benchmarkConfig, start, end snapshot, samples []snapshot) error { |
| 524 | summary := buildSummary(cfg, start, end, samples) |
| 525 | if err := os.MkdirAll(filepath.Dir(cfg.outPath), 0o755); err != nil { |
| 526 | return err |
| 527 | } |
| 528 | |
| 529 | data, err := json.MarshalIndent(summary, "", " ") |
| 530 | if err != nil { |
| 531 | return err |
| 532 | } |
| 533 | |
| 534 | return os.WriteFile(cfg.outPath, data, 0o644) |
| 535 | } |
| 536 | |
| 537 | func waitForNextTickOrInterrupt(ticker *time.Ticker, signalCh <-chan os.Signal) bool { |
| 538 | select { |