Commander misses initializing flagset output
- Dominant language
- Go
- Stars
- 795
- Forks
- 51
- PR merge metrics
- No merged PRs in 30d
Description
## Description
In the `*Commander.Execute` method, a new `flag.FlagSet` is initialized for the command to run. However, the `FlagSet.output` of that `FlagSet` is not initialized, which causes potential errors to be reported by `f.failf()`, which in turn invokes `f.Output()`, which falls back to `os.Stderr` because the field is not initialized.
This causes the error output not to match the commander `.Error` property, preventing capture/redirection especially during tests.
## What should happen
The output of the newly created `FieldSet` should be set to either the `cdr.topFlags` output, or to `cdr.Error` during initialization, with the latter slightly being more logical.
Contributor guide
Assessment
This issue has not been assessed yet.