diff --git a/command.go b/command.go index 7285d10..f1c1b74 100644 --- a/command.go +++ b/command.go @@ -79,7 +79,7 @@ func (c *Command) SetArgs(a []string) { c.args = a } -func (c *Command) Out() io.Writer { +func (c *Command) getOut(def io.Writer) io.Writer { if c.output != nil { return *c.output } @@ -87,10 +87,18 @@ func (c *Command) Out() io.Writer { if c.HasParent() { return c.parent.Out() } else { - return os.Stderr + return def } } +func (c *Command) Out() io.Writer { + return c.getOut(os.Stderr) +} + +func (c *Command) getOutOrStdout() io.Writer { + return c.getOut(os.Stdout) +} + // SetOutput sets the destination for usage and error messages. // If output is nil, os.Stderr is used. func (c *Command) SetOutput(output io.Writer) { @@ -658,7 +666,7 @@ func (c *Command) Usage() error { // by the default HelpFunc in the commander func (c *Command) Help() error { c.mergePersistentFlags() - err := tmpl(c.Out(), c.HelpTemplate(), c) + err := tmpl(c.getOutOrStdout(), c.HelpTemplate(), c) return err }