github.com/drellem2/pogo@v0.0.0-20240503070746-2c2b76da329a/internal/driver/builtin.go (about)

     1  ////////////////////////////////////////////////////////////////////////////////
     2  //////////////////////////// Built-in plugins //////////////////////////////////
     3  ////////////////////////////////////////////////////////////////////////////////
     4  
     5  package driver
     6  
     7  import (
     8  	searchPlugin "github.com/drellem2/pogo/internal/plugins/search"
     9  	pogoPlugin "github.com/drellem2/pogo/pkg/plugin"
    10  )
    11  
    12  type BuiltinFactory func() (pogoPlugin.IPogoPlugin, error)
    13  
    14  var builtinPlugins = map[string]BuiltinFactory{
    15  	"pogo-plugin-search": searchPlugin.New(),
    16  }
    17  
    18  var builtinRegistry = newRegistry()
    19  
    20  func newRegistry() map[string]*pogoPlugin.IPogoPlugin {
    21  	registry := map[string]*pogoPlugin.IPogoPlugin{}
    22  	for name, factory := range builtinPlugins {
    23  		p, err := factory()
    24  		if err != nil {
    25  			logger.Error("Could not start plugin", "name", name, "err", err.Error())
    26  		} else {
    27  			registry[name] = &p
    28  		}
    29  	}
    30  	return registry
    31  }