package main import ( "flag" "fmt" "os" "time" "latprobe/internal/probe" ) const usageText = `latprobe — measure per-phase HTTP request latency Usage: latprobe [flags] [url ...] Flags: -n, --count int Number of requests per URL (default 1) --json Output results as JSON instead of text -h, --help Show this help Examples: latprobe https://example.com latprobe -n 5 https://example.com https://www.google.com latprobe --json https://example.com | jq . ` func main() { count := flag.Int("count", 1, "number of requests per URL") flag.IntVar(count, "n", 1, "number of requests per URL (shorthand)") jsonOut := flag.Bool("json", false, "output results as JSON") flag.Usage = func() { fmt.Fprint(os.Stderr, usageText) } flag.Parse() urls := flag.Args() if len(urls) == 0 { fmt.Fprint(os.Stderr, usageText) os.Exit(1) } // --json and -n are parsed but not yet functional (wired in Steps 3–4). _ = jsonOut _ = count failed := false for _, url := range urls { r := probe.Measure(url) if r.Err != nil { fmt.Fprintf(os.Stderr, "error %s: %v\n", url, r.Err) failed = true continue } fmt.Printf("%-45s %d %v\n", r.URL, r.StatusCode, r.Total.Duration.Round(time.Millisecond)) } if failed { os.Exit(1) } }