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  }