예제 #1
0
// MergeConfigOverrides merges current config with overrides loaded from other sources
func MergeConfigOverrides(config *confer.Config, configParts map[string]interface{}) error {
	keys := make([]string, len(configParts))
	i := 0
	for key := range configParts {
		keys[i] = key
		i++
	}

	sort.Strings(keys)

	for _, key := range keys {
		log.Printf("Merging overrides from key %s...", key)

		err := config.MergeAttributes(configParts[key])
		if err != nil {
			return fmt.Errorf("unable to merge data for key %s (data %#v): %s", key, configParts[key], err)
		}
	}

	return nil
}