fix: preinstall sync plugins have priority over preinstall_async plugin (#106016)

This commit is contained in:
Syerikjan Kh
2025-05-27 08:32:02 -04:00
committed by GitHub
parent ef14992f00
commit b6c9ecf7fe
2 changed files with 12 additions and 3 deletions

View File

@ -145,13 +145,15 @@ func (cfg *Cfg) readPluginSettings(iniFile *ini.File) error {
delete(preinstallPluginsAsync, disabledPlugin) delete(preinstallPluginsAsync, disabledPlugin)
delete(preinstallPluginsSync, disabledPlugin) delete(preinstallPluginsSync, disabledPlugin)
} }
for _, plugin := range preinstallPluginsSync {
cfg.PreinstallPluginsSync = append(cfg.PreinstallPluginsSync, plugin)
// preinstallSync plugin has priority over preinstallAsync
delete(preinstallPluginsAsync, plugin.ID)
}
for _, plugin := range preinstallPluginsAsync { for _, plugin := range preinstallPluginsAsync {
cfg.PreinstallPluginsAsync = append(cfg.PreinstallPluginsAsync, plugin) cfg.PreinstallPluginsAsync = append(cfg.PreinstallPluginsAsync, plugin)
} }
for _, plugin := range preinstallPluginsSync {
cfg.PreinstallPluginsSync = append(cfg.PreinstallPluginsSync, plugin)
}
installPluginsInAsync := pluginsSection.Key("preinstall_async").MustBool(true) installPluginsInAsync := pluginsSection.Key("preinstall_async").MustBool(true)
if !installPluginsInAsync { if !installPluginsInAsync {
for key, plugin := range preinstallPluginsAsync { for key, plugin := range preinstallPluginsAsync {

View File

@ -237,6 +237,13 @@ func Test_readPluginSettings(t *testing.T) {
return plugins return plugins
}(), }(),
}, },
{
name: "when same plugin is defined in preinstall and preinstall_sync, should be only in preinstallSync",
rawInput: "plugin1",
rawInputSync: "plugin1",
expected: defaultPreinstallPluginsList,
expectedSync: []InstallPlugin{{ID: "plugin1"}},
},
} }
for _, tc := range tests { for _, tc := range tests {
t.Run(tc.name, func(t *testing.T) { t.Run(tc.name, func(t *testing.T) {