in internal/tfengine/config.go [64:102]
func (c *Config) Init() error {
var err error
if c.DataCty != nil {
c.Data, err = hcl.CtyValueToMap(c.DataCty)
if err != nil {
return fmt.Errorf("failed to convert %v to map: %v", c.DataCty, err)
}
}
if c.Data == nil {
c.Data = make(map[string]interface{})
}
if c.SchemaCty != nil {
c.Schema, err = hcl.CtyValueToMap(c.SchemaCty)
if err != nil {
return fmt.Errorf("failed to convert schema %v to map: %v", c.SchemaCty, err)
}
// Add output_path to be a valid field in schema. It is set for each template below.
props := c.Schema["properties"].(map[string]interface{})
props["output_path"] = make(map[string]interface{})
}
for _, t := range c.Templates {
if t.DataCty != nil {
t.Data, err = hcl.CtyValueToMap(t.DataCty)
if err != nil {
return fmt.Errorf("failed to convert data %v to map: %v", t.DataCty, err)
}
}
if t.Data == nil {
t.Data = make(map[string]interface{})
}
if t.OutputPath != "" {
t.Data["output_path"] = filepath.Clean(t.OutputPath)
}
}
return c.validate()
}