in dev-tools/mage/fmt.go [78:107]
func FindFilesRecursive(match func(path string, info os.FileInfo) bool) ([]string, error) {
var matches []string
walkDir := func(path string, d fs.DirEntry, err error) error {
if err != nil {
return err
}
// Don't look for files in git directories
if d.IsDir() && filepath.Base(path) == ".git" {
return filepath.SkipDir
}
info, err := d.Info()
if err != nil {
return fmt.Errorf("canot get FileInfo: %w", err)
}
if !info.Mode().IsRegular() {
// continue
return nil
}
if match(filepath.ToSlash(path), info) {
matches = append(matches, path)
}
return nil
}
err := filepath.WalkDir(".", fs.WalkDirFunc(walkDir))
return matches, err
}