diff --git a/command.go b/command.go index 34f3120b..e15476aa 100644 --- a/command.go +++ b/command.go @@ -176,6 +176,15 @@ func (c *Command) Usage() error { return err } +func (c *Command) UsageString() string { + tmpOutput := c.Commander().cmdr.output + bb := new(bytes.Buffer) + c.Commander().SetOutput(bb) + c.Usage() + c.Commander().cmdr.output = tmpOutput + return bb.String() +} + // The full path to this command func (c *Command) CommandPath() string { str := c.Name() diff --git a/commander.go b/commander.go index e1dae1b9..411e74ee 100644 --- a/commander.go +++ b/commander.go @@ -143,8 +143,7 @@ Additional help topics: {{if gt .Commands 0 }}{{range .Commands}}{{if not .Runna Use "{{.Commander.Name}} help [command]" for more information about that command. ` - c.HelpTemplate = `{{.Name}} -{{.Long | trim}} -{{if .Runnable}}{{.Usage}}{{end}} + c.HelpTemplate = `{{.Long | trim}} +{{if .Runnable}}{{.UsageString}}{{end}} ` }