MCPcopy Index your code
hub / github.com/devspace-sh/devspace / Resolve

Function Resolve

pkg/devspace/imageselector/image_selector.go:20–77  ·  view source on GitHub ↗
(configImageName string, config config.Config, dependencies []types.Dependency)

Source from the content-addressed store, hash-verified

18}
19
20func 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}

Callers 1

resolveImageFunction · 0.92

Calls 8

ConfigInterface · 0.92
ResolveImageMethod · 0.80
LocalCacheMethod · 0.65
GetImageCacheMethod · 0.65
NameMethod · 0.65
ConfigMethod · 0.65
ChildrenMethod · 0.65
ErrorfMethod · 0.45

Tested by

no test coverage detected