google / oauth2l

oauth2l ("oauth tool") is a simple CLI for interacting with Google API authentication.
Apache License 2.0
652 stars 81 forks source link

Errors go to stdout and don't produce nonzero exit status #148

Open timdp opened 1 year ago

timdp commented 1 year ago

This construct occurs a bunch of times:

if err != nil {
    fmt.Println(err)
    return nil
}

But:

  1. This prints errors to stdout instead of stderr (similar to #146).
  2. It swallows the error rather than making the program exit with a nonzero status.

Both things make oauth2l unsuitable for use in scripts in particular.

A naive fix would be to replace all these constructs with panic(err.Error()) but it would make more sense to rethrow (well, re-return) errors and add a global error handler that calls os.Exit(code), optionally with a specific code per error type.

I'd be willing to add the panic calls in a PR but I don't think I understand the codebase enough to start a more aggressive refactor.