plugin/manage/init.go

62 lines
830 B
Go

package manage
import (
"gitea.cdlsxd.cn/BaseSystem/plugin/shared"
)
var m *pluginManage
func Init(c []*Config) error {
m = &pluginManage{
plugins: make(map[string]*pluginInfo, len(c)),
}
return load(c)
}
func load(p []*Config) error {
for _, c := range p {
err := Add(c)
if err != nil {
return err
}
}
return nil
}
func Add(c *Config) error {
err := c.Validate()
if err != nil {
return err
}
return m.add(c)
}
func Update(c *Config) error {
err := c.Validate()
if err != nil {
return err
}
err = Remove(c.Tag)
if err != nil {
return err
}
return m.add(c)
}
func Get(tag string) (shared.PluginService, error) {
p, err := m.get(tag)
if err != nil {
return nil, err
}
return p.impl, nil
}
func Remove(tag string) error {
return m.remove(tag)
}
func Close() {
m.close()
m = nil
}