package util import ( "io/ioutil" "log" "path/filepath" ) type ParseFunc func(data []byte) int func ParseFiles(dir string, parser ParseFunc) { files, err := ioutil.ReadDir(dir) if err != nil { log.Print(err.Error()) return } for _, file := range files { if filepath.Ext(file.Name()) == ".yml" || filepath.Ext(file.Name()) == ".yaml" { ParseFile(dir+file.Name(), parser) } } } func ParseFile(fileName string, parser ParseFunc) { data, err := ioutil.ReadFile(fileName) if err != nil { log.Print(err.Error()) return } count := parser(data) log.Printf("util.parseFile: Added %d new entries from %s", count, fileName) }