func()

in pkg/data_variable.go [26:54]


func (dd *DataVariable) ExecuteDuringPlan() error {
	src := dd.BaseBlock.Config().(*MetaProgrammingTFConfig).VariableBlocks()
	var matched []*terraform.RootBlock
	ds := linq.From(src)
	if dd.ExpectedNameName != "" {
		ds = ds.Where(func(i interface{}) bool {
			return i.(*terraform.RootBlock).Labels[0] == dd.ExpectedNameName
		})
	}
	if dd.ExpectedType != "" {

		ds = ds.Where(func(i interface{}) bool {
			typeAttr, ok := i.(*terraform.RootBlock).Attributes["type"]
			if !ok {
				return false
			}
			typeVal := typeAttr.String()
			return typeVal == dd.ExpectedType
		})
	}
	ds.ToSlice(&matched)
	variableBlocks := make(map[string]cty.Value)
	for _, block := range matched {
		variableName := block.Labels[0]
		variableBlocks[variableName] = block.EvalContext()
	}
	dd.Result = cty.ObjectVal(variableBlocks)
	return nil
}