plugin/manage/manage.go

61 lines
779 B
Go
Raw Normal View History

2024-08-30 18:02:15 +08:00
package manage
2024-11-06 13:37:23 +08:00
var m *pluginManage
2024-08-30 18:02:15 +08:00
2024-11-06 13:37:23 +08:00
func init() {
m = &pluginManage{
plugins: make(map[string]*PluginInfo),
}
2024-08-30 18:02:15 +08:00
}
2024-11-06 13:37:23 +08:00
func Load(p []*Config) error {
for _, c := range p {
err := Add(c)
if err != nil {
return err
}
}
return nil
2024-08-30 18:02:15 +08:00
}
2024-11-06 13:37:23 +08:00
func Add(c *Config) error {
err := c.Validate()
if err != nil {
return err
2024-08-30 18:02:15 +08:00
}
2024-11-06 13:37:23 +08:00
return m.add(c)
2024-08-30 18:02:15 +08:00
}
2024-11-06 13:37:23 +08:00
func Update(c *Config) error {
err := c.Validate()
2024-08-30 18:02:15 +08:00
if err != nil {
return err
}
2024-11-06 13:37:23 +08:00
err = Remove(c.Tag)
if err != nil {
return err
2024-08-30 18:02:15 +08:00
}
2024-11-06 13:37:23 +08:00
return m.add(c)
2024-08-30 18:02:15 +08:00
}
2024-11-06 13:37:23 +08:00
func Get(tag string) (*PluginInfo, error) {
p, err := m.get(tag)
if err != nil {
return nil, err
2024-08-30 18:02:15 +08:00
}
2024-11-06 13:37:23 +08:00
return p, nil
2024-08-30 18:02:15 +08:00
}
2024-11-06 13:37:23 +08:00
func GetAll() map[string]*PluginInfo {
return m.plugins
2024-08-30 18:02:15 +08:00
}
2024-11-06 13:37:23 +08:00
func Remove(tag string) error {
return m.remove(tag)
}
func Close() {
m.close()
m = nil
2024-08-30 18:02:15 +08:00
}