in lib/config.go [90:116]
func ParseConfig(jsonConfig, jsonOverrides []byte, version int, provider ConfigProvider) (*Config, error) {
var combined combinedconfigSpec
if err := json.Unmarshal(jsonConfig, &combined); err != nil {
glog.Errorf("Failed to parse JSON: %s", err)
return nil, err
}
var spec configSpec
if version == 4 {
spec = combined.V4
} else if version == 6 {
spec = combined.V6
}
var overrides map[string]Override
if len(jsonOverrides) == 0 {
overrides = make(map[string]Override)
} else {
var err error
overrides, err = parseOverrides(jsonOverrides, version)
if err != nil {
glog.Errorf("Failed to load overrides: %s", err)
return nil, err
}
}
glog.Infof("Loaded %d override(s)", len(overrides))
return newConfig(&spec, overrides, provider)
}