github.com/gobuffalo/buffalo-cli/v2@v2.0.0-alpha.15.0.20200919213536-a7350c8e6799/cli/cmds/info/cmd.go (about) 1 package info 2 3 import ( 4 "github.com/gobuffalo/plugins" 5 "github.com/gobuffalo/plugins/plugprint" 6 "github.com/spf13/pflag" 7 ) 8 9 var _ plugins.Plugin = &Cmd{} 10 var _ plugins.Needer = &Cmd{} 11 var _ plugins.Scoper = &Cmd{} 12 var _ plugprint.Describer = &Cmd{} 13 var _ plugprint.FlagPrinter = &Cmd{} 14 15 type Cmd struct { 16 flags *pflag.FlagSet 17 pluginsFn plugins.Feeder 18 help bool 19 } 20 21 func (cmd *Cmd) WithPlugins(f plugins.Feeder) { 22 cmd.pluginsFn = f 23 } 24 25 func (cmd *Cmd) PluginName() string { 26 return "info" 27 } 28 29 func (cmd *Cmd) Description() string { 30 return "Print diagnostic information (useful for debugging)" 31 } 32 33 func (cmd *Cmd) ScopedPlugins() []plugins.Plugin { 34 if cmd.pluginsFn == nil { 35 return nil 36 } 37 38 var plugs []plugins.Plugin 39 40 for _, p := range cmd.pluginsFn() { 41 switch p.(type) { 42 case Informer: 43 plugs = append(plugs, p) 44 } 45 } 46 return plugs 47 }