Merge remote-tracking branch 'origin/master' into completion_fix

This commit is contained in:
Joshua Rubin
2016-11-18 09:28:39 -07:00
14 changed files with 607 additions and 76 deletions

16
app.go
View File

@@ -178,7 +178,11 @@ func (a *App) Run(arguments []string) (err error) {
shellComplete, arguments := checkShellCompleteFlag(a, arguments)
// parse flags
set := flagSet(a.Name, a.Flags)
set, err := flagSet(a.Name, a.Flags)
if err != nil {
return err
}
set.SetOutput(ioutil.Discard)
err = set.Parse(arguments[1:])
nerr := normalizeFlags(a.Flags, set)
@@ -247,6 +251,10 @@ func (a *App) Run(arguments []string) (err error) {
}
}
if a.Action == nil {
a.Action = helpCommand.Action
}
// Run default Action
err = HandleAction(a.Action, context)
@@ -289,7 +297,11 @@ func (a *App) RunAsSubcommand(ctx *Context) (err error) {
a.Commands = newCmds
// parse flags
set := flagSet(a.Name, a.Flags)
set, err := flagSet(a.Name, a.Flags)
if err != nil {
return err
}
set.SetOutput(ioutil.Discard)
err = set.Parse(ctx.Args().Tail())
nerr := normalizeFlags(a.Flags, set)