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

Method resolve

pkg/devspace/config/loader/variable/resolver.go:354–395  ·  view source on GitHub ↗
(ctx context.Context, name string, definition *latest.Variable)

Source from the content-addressed store, hash-verified

352}
353
354func (r *resolver) resolve(ctx context.Context, name string, definition *latest.Variable) (interface{}, error) {
355 name = strings.TrimSpace(name)
356
357 // check if in vars already
358 v, ok := r.memoryCache[name]
359 if ok {
360 return v, nil
361 }
362
363 // is predefined variable?
364 variable, err := NewPredefinedVariable(name, r.options, r.log)
365 if err == nil {
366 value, err := variable.Load(ctx, definition)
367 if err != nil {
368 return nil, err
369 }
370
371 r.memoryCache[name] = value
372 return value, nil
373 }
374
375 // fill other variables in the variable definition
376 err = r.fillVariableDefinition(ctx, definition)
377 if err != nil {
378 return nil, err
379 }
380
381 // skip variable if no definition was found
382 if definition == nil {
383 return "${" + name + "}", nil
384 }
385
386 // fill the variable if not found
387 value, err := r.fillVariable(ctx, name, definition)
388 if err != nil {
389 return nil, err
390 }
391
392 // set variable so that we don't ask again
393 r.memoryCache[name] = value
394 return value, nil
395}
396
397func (r *resolver) findVariablesInDefinition(definition *latest.Variable) map[string]bool {
398 varsUsed := map[string]bool{}

Callers 7

replaceStringMethod · 0.95
findAndFillVariablesMethod · 0.95
resolveAppFunction · 0.45
env.jsFile · 0.45

Calls 4

fillVariableMethod · 0.95
NewPredefinedVariableFunction · 0.85
LoadMethod · 0.65

Tested by

no test coverage detected