Preinstall: Allow to extend default list (#96402)

This commit is contained in:
Andres Martinez Gotor
2024-11-14 13:36:57 +01:00
committed by GitHub
parent 4051df1f6c
commit 369d0a6aca
3 changed files with 110 additions and 4 deletions
+22 -3
View File
@@ -26,6 +26,13 @@ func extractPluginSettings(sections []*ini.Section) PluginSettings {
return psMap
}
var (
defaultPreinstallPlugins = map[string]InstallPlugin{
// Default preinstalled plugins
"grafana-lokiexplore-app": {"grafana-lokiexplore-app", ""},
}
)
func (cfg *Cfg) readPluginSettings(iniFile *ini.File) error {
pluginsSection := iniFile.Section("plugins")
@@ -42,15 +49,27 @@ func (cfg *Cfg) readPluginSettings(iniFile *ini.File) error {
disablePreinstall := pluginsSection.Key("preinstall_disabled").MustBool(false)
if !disablePreinstall {
rawInstallPlugins := util.SplitString(pluginsSection.Key("preinstall").MustString(""))
cfg.PreinstallPlugins = make([]InstallPlugin, len(rawInstallPlugins))
for i, plugin := range rawInstallPlugins {
preinstallPlugins := make(map[string]InstallPlugin)
// Add the default preinstalled plugins
for _, plugin := range defaultPreinstallPlugins {
preinstallPlugins[plugin.ID] = plugin
}
// Add the plugins defined in the configuration
for _, plugin := range rawInstallPlugins {
parts := strings.Split(plugin, "@")
id := parts[0]
v := ""
if len(parts) == 2 {
v = parts[1]
}
cfg.PreinstallPlugins[i] = InstallPlugin{id, v}
preinstallPlugins[id] = InstallPlugin{id, v}
}
// Remove from the list the plugins that have been disabled
for _, disabledPlugin := range cfg.DisablePlugins {
delete(preinstallPlugins, disabledPlugin)
}
for _, plugin := range preinstallPlugins {
cfg.PreinstallPlugins = append(cfg.PreinstallPlugins, plugin)
}
cfg.PreinstallPluginsAsync = pluginsSection.Key("preinstall_async").MustBool(true)
}