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 }