in commands/generate.go [406:437]
func blockFileMap(workingDirectory string) map[string]string {
files, err := os.ReadDir(workingDirectory)
if err != nil {
logrus.Warnf("reading dir %s: %+v", workingDirectory, err)
return nil
}
out := make(map[string]string)
for _, file := range files {
if !strings.HasSuffix(file.Name(), ".tf") {
continue
}
src, err := os.ReadFile(path.Join(workingDirectory, file.Name()))
if err != nil {
logrus.Warnf("reading file %s: %+v", file.Name(), err)
continue
}
f, diag := hclwrite.ParseConfig(src, file.Name(), hcl.InitialPos)
if diag.HasErrors() {
logrus.Warnf("parsing file %s: %+v", file.Name(), diag.Error())
continue
}
if f == nil || f.Body() == nil {
continue
}
for _, block := range f.Body().Blocks() {
key := fmt.Sprintf("%s.%s", block.Type(), strings.Join(block.Labels(), "."))
out[key] = file.Name()
}
}
return out
}