in pkg/terraform/module.go [52:78]
func (m *Module) loadConfig(cfg, filename string) error {
writeFile, diag := hclwrite.ParseConfig([]byte(cfg), filename, hcl.InitialPos)
if diag.HasErrors() {
return diag
}
readFile, diag := hclsyntax.ParseConfig([]byte(cfg), filename, hcl.InitialPos)
if diag.HasErrors() {
return diag
}
m.writeFiles[filename] = writeFile
readBlocks := readFile.Body.(*hclsyntax.Body).Blocks
writeBlocks := writeFile.Body().Blocks()
for i, rb := range readBlocks {
if rb.Type == "locals" {
m.loadLocals(rb, writeBlocks[i])
continue
}
getter, want := wantedTypes[rb.Type]
if !want {
continue
}
hclBlock := NewBlock(m, rb, writeBlocks[i])
blocks := getter(m)
*blocks = append(*blocks, hclBlock)
}
return nil
}