(configImageName string, config config.Config, dependencies []types.Dependency)
| 18 | } |
| 19 | |
| 20 | func Resolve(configImageName string, config config.Config, dependencies []types.Dependency) (*ImageSelector, error) { |
| 21 | if configImageName != "" && config != nil && config.LocalCache() != nil && config.Config() != nil { |
| 22 | var ( |
| 23 | c = config.Config() |
| 24 | generated = config.LocalCache() |
| 25 | ) |
| 26 | |
| 27 | // check if cached |
| 28 | imageCache, _ := generated.GetImageCache(configImageName) |
| 29 | if imageCache.ImageName != "" && imageCache.Tag != "" && c.Images != nil && c.Images[configImageName] != nil { |
| 30 | return &ImageSelector{ |
| 31 | Image: imageCache.ResolveImage() + ":" + imageCache.Tag, |
| 32 | }, nil |
| 33 | } |
| 34 | |
| 35 | // check if defined in images |
| 36 | if c.Images != nil && c.Images[configImageName] != nil { |
| 37 | if len(c.Images[configImageName].Tags) > 0 { |
| 38 | return &ImageSelector{ |
| 39 | Image: c.Images[configImageName].Image + ":" + strings.ReplaceAll(c.Images[configImageName].Tags[0], "#", "x"), |
| 40 | }, nil |
| 41 | } |
| 42 | |
| 43 | return &ImageSelector{ |
| 44 | Image: c.Images[configImageName].Image, |
| 45 | }, nil |
| 46 | } |
| 47 | |
| 48 | // check if image from dependency |
| 49 | if strings.Contains(configImageName, ".") { |
| 50 | dependency := configImageName[:strings.Index(configImageName, ".")] |
| 51 | dependencyImageName := configImageName[len(dependency)+1:] |
| 52 | |
| 53 | for _, dep := range dependencies { |
| 54 | if dep.Name() == dependency { |
| 55 | imageSelector, err := Resolve(dependencyImageName, dep.Config(), dep.Children()) |
| 56 | if err != nil { |
| 57 | return nil, err |
| 58 | } else if imageSelector == nil { |
| 59 | return imageSelector, nil |
| 60 | } |
| 61 | |
| 62 | // if no dependency is set, we set it here |
| 63 | if imageSelector.Dependency == nil { |
| 64 | imageSelector.Dependency = dep |
| 65 | } |
| 66 | |
| 67 | // make sure the selector has the correct original name |
| 68 | return imageSelector, nil |
| 69 | } |
| 70 | } |
| 71 | } |
| 72 | |
| 73 | return nil, fmt.Errorf("couldn't find imageName %s", configImageName) |
| 74 | } |
| 75 | |
| 76 | return nil, nil |
| 77 | } |
no test coverage detected