- Create a Plugin Builder
builder = &plugins.PluginBuilder{
Logger: slog.Default(),
}
- Build the Go Plugin
pluginBuilder.Build(context.TODO,payload, func(pi plugins.PluginInfo) {
// when finish
})
The payload
structure is defined as follows. If code is provided, it takes precedence.
type BuildPayload struct {
Tenant string `json:"tenant"`
Id string `json:"id"`
Title string `json:"title" title:"Your tool title"`
Code string `json:"code" title:"Upload pure go code which in main package!"`
SoFile string `json:"soFile"`
Ext any `json:"ext"`
}
options := engine.Options{
Tenants: []engine.TenantOptions{
{TenantID: "tenantA"},
},
}
engine.NewLoader(options).Run()