INNER CODE UNIT · Go
NewConfigFromFiles
ozontech/file.d · cfg/config.go:105
func NewConfigFromFiles(paths []string) *Config {
mergedConfig := make(map[any]any, len(paths))
for _, path := range paths {
logger.Infof("reading config %q", path)
yamlContents, err := os.ReadFile(path)
if err != nil {
logger.Fatalf("can't read config file %q: %s", path, err)
}
var currentConfig map[any]any
if err := yaml.Unmarshal(yamlContents, ¤tConfig); err != nil {
logger.Fatalf("can't parse config file yaml %q: %s", path, err)
}
mergedConfig = mergeYAMLs(mergedConfig, currentConfig)
}
mergedYAML, err := yaml.Marshal(mergedConfig)