diff --git a/cmd/semantic-release/main.go b/cmd/semantic-release/main.go index 22c67d4130012d95ae299f57f3b3a18595917c52..3ca9e475c3d3ab25ff923e7206c98fb48d7b5839 100644 --- a/cmd/semantic-release/main.go +++ b/cmd/semantic-release/main.go @@ -103,17 +103,21 @@ func cliHandler(cmd *cobra.Command, args []string) { if conf.DownloadPlugins { exitIfError(pluginManager.FetchAllPlugins()) - logger.Println("all plugins are downloaded") + logger.Println("all plugins were downloaded!") return } if !conf.PluginResolverDisableBatchPrefetch { - ok, _, pErr := pluginManager.PrefetchAllPluginsIfBatchIsPossible() + logger.Println("trying to prefetch plugins...") + pluginsWerePrefetched, _, pErr := pluginManager.PrefetchAllPluginsIfBatchIsPossible() if pErr != nil { logger.Printf("warning: failed to prefetch plugins: %v", pErr) - } - if ok { - logger.Println("all plugins were prefetched!") + } else { + if pluginsWerePrefetched { + logger.Println("all plugins were prefetched!") + } else { + logger.Println("prefetching plugins was not possible.") + } } } diff --git a/pkg/plugin/manager/manager.go b/pkg/plugin/manager/manager.go index 8ea720879b741b9adc13eb3acb51374181ea5d26..0b327ad5314ed33be61a69b4a652728bae00c449 100644 --- a/pkg/plugin/manager/manager.go +++ b/pkg/plugin/manager/manager.go @@ -166,6 +166,27 @@ func (m *PluginManager) checkIfSameResolvers(infos []*plugin.Info) (string, bool return resolver, true } +func (m *PluginManager) PrefetchAllPluginsIfBatchIsPossible() (bool, []*plugin.Info, error) { + pInfos, err := m.getAllPluginInfos() + if err != nil { + return false, nil, err + } + + if m.config.PluginResolverDisableBatchPrefetch { + return false, pInfos, nil + } + + if resolver, ok := m.checkIfSameResolvers(pInfos); ok && m.discovery.IsBatchResolver(resolver) { + // all plugins have the same resolver, and it supports batch resolving + bErr := m.discovery.FindPluginsWithBatchResolver(resolver, pInfos) + if bErr != nil { + return false, pInfos, bErr + } + return true, pInfos, nil + } + return false, pInfos, nil +} + func (m *PluginManager) FetchAllPlugins() error { batchWasPossible, pInfos, err := m.PrefetchAllPluginsIfBatchIsPossible() if err != nil && pInfos == nil { @@ -184,20 +205,3 @@ func (m *PluginManager) FetchAllPlugins() error { } return nil } - -func (m *PluginManager) PrefetchAllPluginsIfBatchIsPossible() (bool, []*plugin.Info, error) { - pInfos, err := m.getAllPluginInfos() - if err != nil { - return false, nil, err - } - - if resolver, ok := m.checkIfSameResolvers(pInfos); ok && m.discovery.IsBatchResolver(resolver) { - // all plugins have the same resolver, and it supports batch resolving - bErr := m.discovery.FindPluginsWithBatchResolver(resolver, pInfos) - if bErr != nil { - return false, pInfos, bErr - } - return true, pInfos, nil - } - return false, pInfos, nil -}