From 60c9365e7cab84f42180f1980338691ea9db9524 Mon Sep 17 00:00:00 2001 From: Ammar Bandukwala Date: Wed, 29 Mar 2023 15:31:41 +0000 Subject: [PATCH] chore(cli): send help to stdout Minimizes pesky `2>&1` when working with help. --- cli/help.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/cli/help.go b/cli/help.go index 5720e2a7af71b..4fa18455c2c5b 100644 --- a/cli/help.go +++ b/cli/help.go @@ -267,10 +267,13 @@ var usageWantsArgRe = regexp.MustCompile(`<.*>`) // output for a given command. func helpFn() clibase.HandlerFunc { return func(inv *clibase.Invocation) error { - // We buffer writes to stderr because the newlineLimiter writes one + // We use stdout for help and not stderr since there's no straightforward + // way to distinguish between a user error and a help request. + // + // We buffer writes to stdout because the newlineLimiter writes one // rune at a time. - stderrBuf := bufio.NewWriter(inv.Stderr) - out := newlineLimiter{w: stderrBuf, limit: 2} + outBuf := bufio.NewWriter(inv.Stdout) + out := newlineLimiter{w: outBuf, limit: 2} tabwriter := tabwriter.NewWriter(&out, 0, 0, 2, ' ', 0) err := usageTemplate.Execute(tabwriter, inv.Command) if err != nil { @@ -280,7 +283,7 @@ func helpFn() clibase.HandlerFunc { if err != nil { return err } - err = stderrBuf.Flush() + err = outBuf.Flush() if err != nil { return err }