cmd/ejobs: avoid displaying default help message for http errors - Previously, the full help message was displayed for every error. - If there is an HTTP error, just display the error. Change-Id: Icacf6e55cf9b8430176cd31de0525d7667a3142d Reviewed-on: https://go-review.googlesource.com/c/pkgsite-metrics/+/698256 Auto-Submit: Ethan Lee <ethanalee@google.com> Reviewed-by: Neal Patel <nealpatel@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
diff --git a/cmd/ejobs/main.go b/cmd/ejobs/main.go index fce4f00..b9d3b32 100644 --- a/cmd/ejobs/main.go +++ b/cmd/ejobs/main.go
@@ -131,11 +131,18 @@ flag.Parse() if err := run(context.Background()); err != nil { fmt.Fprintf(os.Stderr, "%v\n\n", err) - flag.Usage() + var httpErr *httpError + if !errors.As(err, &httpErr) { + flag.Usage() + } os.Exit(2) } } +type httpError struct{ msg string } + +func (e *httpError) Error() string { return e.msg } + var workerURL string func run(ctx context.Context) error { @@ -603,7 +610,7 @@ return nil, fmt.Errorf("reading body (%s): %v", res.Status, err) } if res.StatusCode != 200 { - return nil, fmt.Errorf("%s: %s", res.Status, body) + return nil, &httpError{msg: string(body)} } return body, nil }