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  }