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()
}