in cli/bpmetadata/path.go [47:83]
func getDirPaths(configPath string, re *regexp.Regexp) ([]*BlueprintMiscContent, error) {
paths := []*BlueprintMiscContent{}
err := filepath.Walk(configPath, func(path string, info fs.FileInfo, err error) error {
if err != nil {
return fmt.Errorf("error accessing examples in the path %q: %w", configPath, err)
}
// skip if this is a .terraform dir
if info.IsDir() && strings.HasPrefix(info.Name(), ".terraform") {
return filepath.SkipDir
}
// only interested if it has a TF config
if !info.IsDir() && strings.HasSuffix(info.Name(), ".tf") {
d := filepath.Dir(path)
if l := trimPath(d, re); l != "" {
dirPath := &BlueprintMiscContent{
Name: filepath.Base(d),
Location: l,
}
paths = append(paths, dirPath)
}
return filepath.SkipDir
}
return nil
})
if err != nil {
return nil, fmt.Errorf("error accessing examples in the path %q: %w", configPath, err)
}
// Sort by configPath name before returning
sort.SliceStable(paths, func(i, j int) bool { return paths[i].Name < paths[j].Name })
return paths, nil
}