func blockFileMap()

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
}