MCPcopy Index your code
hub / github.com/cloudfoundry/cli / envVarOrEmptyMap

Function envVarOrEmptyMap

cf/manifest/manifest.go:421–451  ·  view source on GitHub ↗
(yamlMap generic.Map, errs *[]error)

Source from the content-addressed store, hash-verified

419}
420
421func envVarOrEmptyMap(yamlMap generic.Map, errs *[]error) *map[string]interface{} {
422 key := "env"
423 switch envVars := yamlMap.Get(key).(type) {
424 case nil:
425 aMap := make(map[string]interface{}, 0)
426 return &aMap
427 case map[string]interface{}:
428 yamlMap.Set(key, generic.NewMap(yamlMap.Get(key)))
429 return envVarOrEmptyMap(yamlMap, errs)
430 case map[interface{}]interface{}:
431 yamlMap.Set(key, generic.NewMap(yamlMap.Get(key)))
432 return envVarOrEmptyMap(yamlMap, errs)
433 case generic.Map:
434 merrs := validateEnvVars(envVars)
435 if merrs != nil {
436 *errs = append(*errs, merrs...)
437 return nil
438 }
439
440 result := make(map[string]interface{}, envVars.Count())
441 generic.Each(envVars, func(key, value interface{}) {
442 result[key.(string)] = interfaceToString(value)
443 })
444
445 return &result
446 default:
447 *errs = append(*errs, errors.New(T("Expected {{.Name}} to be a set of key => value, but it was a {{.Type}}.",
448 map[string]interface{}{"Name": key, "Type": envVars})))
449 return nil
450 }
451}
452
453func validateEnvVars(input generic.Map) (errs []error) {
454 generic.Each(input, func(key, value interface{}) {

Callers 1

mapToAppParamsFunction · 0.85

Calls 7

NewMapFunction · 0.92
EachFunction · 0.92
validateEnvVarsFunction · 0.85
interfaceToStringFunction · 0.70
GetMethod · 0.65
SetMethod · 0.65
CountMethod · 0.65

Tested by

no test coverage detected