char/pkg/register/plugin.go
2022-11-05 23:05:41 +01:00

25 lines
613 B
Go

package register
import "context"
type AboutCommand struct {
Name string `json:"name" yaml:"name"`
Args []string `json:"args" yaml:"args"`
Required []string `json:"required" yaml:"required"`
}
type About struct {
Name string `json:"name"`
Version string `json:"version"`
About string `json:"about"`
Vars []string `json:"vars"`
Commands []*AboutCommand `json:"commands"`
}
type Plugin interface {
About(ctx context.Context) (*About, error)
Do(ctx context.Context, commandName string, args map[string]string) error
}
const PluginKey = "plugin"