in pkg/header/check.go [146:180]
func walkFile(file string, seen map[string]bool) ([]string, error) {
var files []string
if seen[file] {
return files, nil
}
seen[file] = true
if stat, err := os.Stat(file); err == nil {
switch mode := stat.Mode(); {
case mode.IsRegular():
files = append(files, file)
case mode.IsDir():
err := filepath.Walk(file, func(path string, info fs.FileInfo, _ error) error {
if path == file {
// when path is symbolic link file, it causes infinite recursive calls
return nil
}
if seen[path] {
return nil
}
seen[path] = true
if info.Mode().IsRegular() {
files = append(files, path)
}
return nil
})
if err != nil {
return files, err
}
}
}
return files, nil
}