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  }