github.com/JarrahG/buffalocli@v0.0.0-20230801092127-b85bfd5d395a/internal/cmd/plugins.go (about) 1 package cmd 2 3 import ( 4 "sync" 5 6 "github.com/JarrahG/buffalocli/internal/plugins" 7 "github.com/sirupsen/logrus" 8 "github.com/spf13/cobra" 9 ) 10 11 var _plugs plugins.List 12 var initPlugsOnce sync.Once 13 14 func plugs() plugins.List { 15 initPlugsOnce.Do(func() { 16 var err error 17 _plugs, err = plugins.Available() 18 if err == nil { 19 return 20 } 21 22 _plugs = plugins.List{} 23 logrus.Errorf("error loading plugins %s", err) 24 }) 25 return _plugs 26 } 27 28 func decorate(name string, cmd *cobra.Command) { 29 pugs := plugs() 30 for _, c := range pugs[name] { 31 // FIXME: why register all plugins as anywhere command? 32 //anywhereCommands = append(anywhereCommands, c.Name) 33 cc := plugins.Decorate(c) 34 cmd.AddCommand(cc) 35 } 36 }