github.com/gobuffalo/buffalo-cli/v2@v2.0.0-alpha.15.0.20200919213536-a7350c8e6799/cli/cmds/develop/flags.go (about) 1 package develop 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 16 flags := pflag.NewFlagSet(cmd.PluginName(), pflag.ContinueOnError) 17 flags.BoolVarP(&cmd.help, "help", "h", false, "print this help") 18 19 for _, p := range cmd.ScopedPlugins() { 20 switch t := p.(type) { 21 case Flagger: 22 for _, f := range plugflag.Clean(p, t.DevelopFlags()) { 23 flags.AddGoFlag(f) 24 } 25 case Pflagger: 26 for _, f := range flagger.CleanPflags(p, t.DevelopFlags()) { 27 flags.AddFlag(f) 28 } 29 } 30 } 31 32 cmd.flags = flags 33 34 return cmd.flags 35 } 36 37 func (cmd *Cmd) PrintFlags(w io.Writer) error { 38 flags := cmd.Flags() 39 flags.SetOutput(w) 40 flags.PrintDefaults() 41 return nil 42 }