forked from mirror/cobra
considering stderr in UsageString
This commit is contained in:
parent
e35034f0da
commit
b635726081
11
command.go
11
command.go
|
@ -384,13 +384,22 @@ func (c *Command) Help() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// UsageString return usage string.
|
||||
// UsageString returns usage string.
|
||||
func (c *Command) UsageString() string {
|
||||
// Storing normal writers
|
||||
tmpOutput := c.outWriter
|
||||
tmpErr := c.errWriter
|
||||
|
||||
bb := new(bytes.Buffer)
|
||||
c.outWriter = bb
|
||||
c.errWriter = bb
|
||||
|
||||
c.Usage()
|
||||
|
||||
// Setting things back to normal
|
||||
c.outWriter = tmpOutput
|
||||
c.errWriter = tmpErr
|
||||
|
||||
return bb.String()
|
||||
}
|
||||
|
||||
|
|
|
@ -1405,6 +1405,22 @@ func TestSetIn(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestUsageStringRedirected(t *testing.T) {
|
||||
c := &Command{}
|
||||
|
||||
c.usageFunc = func(cmd *Command) error {
|
||||
cmd.Print("[stdout1]")
|
||||
cmd.PrintErr("[stderr2]")
|
||||
cmd.Print("[stdout3]")
|
||||
return nil;
|
||||
}
|
||||
|
||||
expected := "[stdout1][stderr2][stdout3]"
|
||||
if got := c.UsageString(); got != expected {
|
||||
t.Errorf("Expected usage string to consider both stdout and stderr")
|
||||
}
|
||||
}
|
||||
|
||||
func TestFlagErrorFunc(t *testing.T) {
|
||||
c := &Command{Use: "c", Run: emptyRun}
|
||||
|
||||
|
|
Loading…
Reference in New Issue