github.com/gobuffalo/buffalo-cli/v2@v2.0.0-alpha.15.0.20200919213536-a7350c8e6799/cli/cmds/develop/cmd.go (about) 1 package develop 2 3 import ( 4 "github.com/gobuffalo/plugins" 5 "github.com/spf13/pflag" 6 ) 7 8 type Cmd struct { 9 pluginsFn plugins.Feeder 10 flags *pflag.FlagSet 11 help bool 12 } 13 14 func (cmd *Cmd) WithPlugins(f plugins.Feeder) { 15 cmd.pluginsFn = f 16 } 17 18 func (cmd *Cmd) ScopedPlugins() []plugins.Plugin { 19 if cmd.pluginsFn == nil { 20 return []plugins.Plugin{} 21 } 22 23 var plugs []plugins.Plugin 24 for _, p := range cmd.pluginsFn() { 25 switch p.(type) { 26 case Developer: 27 plugs = append(plugs, p) 28 case Flagger: 29 plugs = append(plugs, p) 30 case Pflagger: 31 plugs = append(plugs, p) 32 case Stdouter: 33 plugs = append(plugs, p) 34 } 35 } 36 return plugs 37 } 38 39 func (cmd *Cmd) SubCommands() []plugins.Plugin { 40 var plugs []plugins.Plugin 41 for _, p := range cmd.pluginsFn() { 42 switch p.(type) { 43 case Developer: 44 plugs = append(plugs, p) 45 } 46 } 47 return plugs 48 } 49 50 func (cmd *Cmd) PluginName() string { 51 return "develop/cmd" 52 } 53 54 func (cmd *Cmd) CmdName() string { 55 return "develop" 56 } 57 58 func (cmd *Cmd) CmdAliases() []string { 59 return []string{"dev"} 60 } 61 62 func (cmd *Cmd) Description() string { 63 return "run go apps in 'development' mode" 64 }