github.com/segakazzz/buffalo@v0.16.22-0.20210119082501-1f52048d3feb/buffalo/cmd/plugins.go (about)

     1  package cmd
     2  
     3  import (
     4  	pluginscmd "github.com/gobuffalo/buffalo/buffalo/cmd/plugins"
     5  	"github.com/gobuffalo/buffalo/plugins"
     6  	"github.com/markbates/oncer"
     7  	"github.com/sirupsen/logrus"
     8  	"github.com/spf13/cobra"
     9  )
    10  
    11  func init() {
    12  	RootCmd.AddCommand(pluginscmd.PluginsCmd)
    13  }
    14  
    15  var _plugs plugins.List
    16  
    17  func plugs() plugins.List {
    18  	oncer.Do("buffalo/cmd/plugins", func() {
    19  		var err error
    20  		_plugs, err = plugins.Available()
    21  		if err != nil {
    22  			_plugs = plugins.List{}
    23  			logrus.Errorf("error loading plugins %s", err)
    24  		}
    25  	})
    26  	return _plugs
    27  }
    28  
    29  func decorate(name string, cmd *cobra.Command) {
    30  	pugs := plugs()
    31  	for _, c := range pugs[name] {
    32  		anywhereCommands = append(anywhereCommands, c.Name)
    33  		cc := plugins.Decorate(c)
    34  		cmd.AddCommand(cc)
    35  	}
    36  }