mirror of
https://github.com/grafana/grafana.git
synced 2025-08-01 21:32:14 +08:00
37 lines
732 B
Go
37 lines
732 B
Go
package plugininstaller
|
|
|
|
import "github.com/grafana/grafana/pkg/setting"
|
|
|
|
type Preinstall interface {
|
|
IsPreinstalled(pluginID string) bool
|
|
IsPinned(pluginID string) bool
|
|
}
|
|
|
|
func ProvidePreinstall(
|
|
cfg *setting.Cfg,
|
|
) *PreinstallImpl {
|
|
plugins := make(map[string]*setting.InstallPlugin)
|
|
for _, p := range cfg.PreinstallPlugins {
|
|
plugins[p.ID] = &p
|
|
}
|
|
return &PreinstallImpl{
|
|
plugins: plugins,
|
|
}
|
|
}
|
|
|
|
type PreinstallImpl struct {
|
|
plugins map[string]*setting.InstallPlugin
|
|
}
|
|
|
|
func (c *PreinstallImpl) IsPreinstalled(pluginID string) bool {
|
|
_, ok := c.plugins[pluginID]
|
|
return ok
|
|
}
|
|
|
|
func (c *PreinstallImpl) IsPinned(pluginID string) bool {
|
|
if p, ok := c.plugins[pluginID]; ok {
|
|
return p.Version != ""
|
|
}
|
|
return false
|
|
}
|