github.com/gobuffalo/buffalo-cli/v2@v2.0.0-alpha.15.0.20200919213536-a7350c8e6799/cli/cmds/setup/flags.go (about) 1 package setup 2 3 import ( 4 "io" 5 6 "github.com/gobuffalo/buffalo-cli/v2/internal/flagger" 7 "github.com/gobuffalo/plugins/plugflag" 8 "github.com/spf13/pflag" 9 ) 10 11 func (cmd *Cmd) Flags() *pflag.FlagSet { 12 if cmd.flags != nil { 13 return cmd.flags 14 } 15 flags := pflag.NewFlagSet(cmd.PluginName(), pflag.ContinueOnError) 16 flags.BoolVarP(&cmd.help, "help", "h", false, "print this help") 17 18 for _, p := range cmd.ScopedPlugins() { 19 switch t := p.(type) { 20 case Flagger: 21 for _, f := range plugflag.Clean(p, t.SetupFlags()) { 22 flags.AddGoFlag(f) 23 } 24 case Pflagger: 25 for _, f := range flagger.CleanPflags(p, t.SetupFlags()) { 26 flags.AddFlag(f) 27 } 28 } 29 } 30 31 cmd.flags = flags 32 return cmd.flags 33 } 34 35 func (cmd *Cmd) PrintFlags(w io.Writer) error { 36 flags := cmd.Flags() 37 flags.SetOutput(w) 38 flags.PrintDefaults() 39 return nil 40 }