package manage var m *pluginManage func init() { m = &pluginManage{ plugins: make(map[string]*PluginInfo), } } 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) (*PluginInfo, error) { p, err := m.get(tag) if err != nil { return nil, err } return p, nil } func GetAll() map[string]*PluginInfo { return m.plugins } func Remove(tag string) error { return m.remove(tag) } func Close() { m.close() m = nil }