in pkg/safeguards/helpers.go [66:106]
func GetManifestFilesFromDir(p string) ([]types.ManifestFile, error) {
var manifestFiles []types.ManifestFile
err := filepath.Walk(p, func(walkPath string, info fs.FileInfo, err error) error {
manifest := types.ManifestFile{}
// skip when walkPath is just given path and also a directory
if p == walkPath && info.IsDir() {
return nil
}
if err != nil {
return fmt.Errorf("error walking path %s with error: %w", walkPath, err)
}
if !info.IsDir() && info.Name() != "" && IsYAML(walkPath) {
log.Debugf("%s is not a directory, appending to manifestFiles", info.Name())
byteContent, err := os.ReadFile(walkPath)
if err != nil {
return fmt.Errorf("could not read file %s: %s", walkPath, err)
}
manifest.Name = info.Name()
manifest.ManifestContent = byteContent
manifestFiles = append(manifestFiles, manifest)
} else if !IsYAML(p) {
log.Debugf("%s is not a manifest file, skipping...", info.Name())
} else {
log.Debugf("%s is a directory, skipping...", info.Name())
}
return nil
})
if err != nil {
return nil, fmt.Errorf("could not walk directory: %w", err)
}
if len(manifestFiles) == 0 {
return nil, fmt.Errorf("no manifest files found within given path")
}
return manifestFiles, nil
}