github.com/singlemusic/buffalo@v0.16.30/buffalo/cmd/plugins/listen.go (about) 1 package plugins 2 3 import ( 4 "context" 5 6 "github.com/gobuffalo/buffalo/genny/plugins/install" 7 "github.com/gobuffalo/buffalo/plugins" 8 "github.com/gobuffalo/events" 9 "github.com/gobuffalo/genny/v2" 10 ) 11 12 // Listen is listener for plugin events pipeline 13 func Listen(e events.Event) error { 14 if e.Kind != "buffalo:setup:started" { 15 return nil 16 } 17 18 run := genny.WetRunner(context.Background()) 19 20 opts := &install.Options{} 21 gg, err := install.New(opts) 22 if err != nil { 23 return err 24 } 25 run.WithGroup(gg) 26 payload := e.Payload 27 payload["plugins"] = opts.Plugins 28 events.EmitPayload(plugins.EvtSetupStarted, payload) 29 if err := run.Run(); err != nil { 30 events.EmitError(plugins.EvtSetupErr, err, payload) 31 return err 32 } 33 events.EmitPayload(plugins.EvtSetupFinished, payload) 34 return nil 35 }