func()

in variable.go [81:109]


func (v *VariableBlock) ExecuteBeforePlan() error {
	err := v.parseDescription()
	if err != nil {
		return err
	}
	if err = v.parseVariableType(); err != nil {
		return err
	}
	variableRead, err := v.readValue()
	if err != nil {
		return err
	}
	if variableRead.Error != nil {
		return variableRead.Error
	}
	value := variableRead.Value
	if value == nil {
		return fmt.Errorf("cannot evaluate value for var.%s", v.Name())
	}
	if v.variableType != nil && value.Type() != *v.variableType {
		convertedValue, err := convert.Convert(*value, *v.variableType)
		if err != nil {
			return fmt.Errorf("incompatible type for var.%s, want %s, got %s", v.Name(), v.variableType.GoString(), value.Type().GoString())
		}
		value = &convertedValue
	}
	v.variableValue = value
	return v.validationCheck()
}