Pass global flags down to subcommands
Fix #51 Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
parent
c38cabc3dc
commit
21c99a7e82
23
main.go
23
main.go
|
@ -71,6 +71,29 @@ func main() {
|
|||
},
|
||||
}
|
||||
|
||||
for _, command := range app.Commands {
|
||||
originalFlagNames := make([]string, 0, len(command.Flags))
|
||||
for _, flag := range command.Flags {
|
||||
originalFlagNames = append(originalFlagNames, flag.Names()...)
|
||||
}
|
||||
|
||||
for _, flag := range app.Flags {
|
||||
found := false
|
||||
flagNameLoop:
|
||||
for _, name := range flag.Names() {
|
||||
for _, originalName := range originalFlagNames {
|
||||
if name == originalName {
|
||||
found = true
|
||||
break flagNameLoop
|
||||
}
|
||||
}
|
||||
}
|
||||
if !found {
|
||||
command.Flags = append(command.Flags, flag)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if err := app.Run(os.Args); err != nil {
|
||||
fmt.Printf("Failed to run app with %s: %v\n", os.Args[1:], err)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue