57 lines
719 B
Go
57 lines
719 B
Go
|
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 Remove(tag string) error {
|
||
|
return m.remove(tag)
|
||
|
}
|
||
|
|
||
|
func Close() {
|
||
|
m.close()
|
||
|
m = nil
|
||
|
}
|