|
|
|
@ -13,6 +13,8 @@ import (
|
|
|
|
|
type App struct {
|
|
|
|
|
// The name of the program. Defaults to os.Args[0]
|
|
|
|
|
Name string
|
|
|
|
|
// Name of command for help, defaults to Name
|
|
|
|
|
HelpName string
|
|
|
|
|
// Description of the program.
|
|
|
|
|
Usage string
|
|
|
|
|
// Description of the program argument format.
|
|
|
|
@ -69,8 +71,8 @@ func compileTime() time.Time {
|
|
|
|
|
func NewApp() *App {
|
|
|
|
|
return &App{
|
|
|
|
|
Name: os.Args[0],
|
|
|
|
|
HelpName: os.Args[0],
|
|
|
|
|
Usage: "A new cli application",
|
|
|
|
|
ArgsUsage: "[arguments...]",
|
|
|
|
|
Version: "0.0.0",
|
|
|
|
|
BashComplete: DefaultAppComplete,
|
|
|
|
|
Action: helpCommand.Action,
|
|
|
|
@ -85,6 +87,13 @@ func (a *App) Run(arguments []string) (err error) {
|
|
|
|
|
a.Authors = append(a.Authors, Author{Name: a.Author, Email: a.Email})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
newCmds := []Command{}
|
|
|
|
|
for _, c := range a.Commands {
|
|
|
|
|
c.HelpName = fmt.Sprintf("%s %s", a.HelpName, c.Name)
|
|
|
|
|
newCmds = append(newCmds, c)
|
|
|
|
|
}
|
|
|
|
|
a.Commands = newCmds
|
|
|
|
|
|
|
|
|
|
// append help to commands
|
|
|
|
|
if a.Command(helpCommand.Name) == nil && !a.HideHelp {
|
|
|
|
|
a.Commands = append(a.Commands, helpCommand)
|
|
|
|
@ -188,6 +197,13 @@ func (a *App) RunAsSubcommand(ctx *Context) (err error) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
newCmds := []Command{}
|
|
|
|
|
for _, c := range a.Commands {
|
|
|
|
|
c.HelpName = fmt.Sprintf("%s %s", a.HelpName, c.Name)
|
|
|
|
|
newCmds = append(newCmds, c)
|
|
|
|
|
}
|
|
|
|
|
a.Commands = newCmds
|
|
|
|
|
|
|
|
|
|
// append flags
|
|
|
|
|
if a.EnableBashCompletion {
|
|
|
|
|
a.appendFlag(BashCompletionFlag)
|
|
|
|
|