File tree Expand file tree Collapse file tree 3 files changed +24
-6
lines changed
Expand file tree Collapse file tree 3 files changed +24
-6
lines changed Original file line number Diff line number Diff line change @@ -15,14 +15,27 @@ type Discovery struct {
1515 resolvers map [string ]resolver.Resolver
1616}
1717
18+ func loadResolvers (resolvers ... resolver.Resolver ) (map [string ]resolver.Resolver , error ) {
19+ resolversMap := make (map [string ]resolver.Resolver )
20+ for _ , r := range resolvers {
21+ for _ , name := range r .Names () {
22+ if _ , ok := resolversMap [name ]; ok {
23+ return nil , fmt .Errorf ("resolver %s already exists" , name )
24+ }
25+ resolversMap [name ] = r
26+ }
27+ }
28+ return resolversMap , nil
29+ }
30+
1831func New (config * config.Config ) (* Discovery , error ) {
19- registryResolver := registry .NewResolver ()
32+ resolvers , err := loadResolvers (registry .NewResolver ())
33+ if err != nil {
34+ return nil , err
35+ }
2036 return & Discovery {
21- config : config ,
22- resolvers : map [string ]resolver.Resolver {
23- "default" : registryResolver ,
24- "registry" : registryResolver ,
25- },
37+ config : config ,
38+ resolvers : resolvers ,
2639 }, nil
2740}
2841
Original file line number Diff line number Diff line change @@ -60,3 +60,7 @@ func (r RegistryResolver) ResolvePlugin(pluginInfo *plugin.PluginInfo) (*resolve
6060 Version : foundVersion ,
6161 }, nil
6262}
63+
64+ func (r * RegistryResolver ) Names () []string {
65+ return []string {"default" , "registry" }
66+ }
Original file line number Diff line number Diff line change @@ -11,4 +11,5 @@ type PluginDownloadInfo struct {
1111
1212type Resolver interface {
1313 ResolvePlugin (* plugin.PluginInfo ) (* PluginDownloadInfo , error )
14+ Names () []string
1415}
You can’t perform that action at this time.
0 commit comments