Preinstall: Allow to extend default list (#96402)
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user