in variable.go [158:177]
func (v *VariableBlock) parseVariableValueFromString(rawValue string, treatEmptyAsNoValue bool) VariableValueRead {
if rawValue == "" && treatEmptyAsNoValue {
return NoValue
}
for {
exp, diag := hclsyntax.ParseExpression([]byte(rawValue), "", hcl.InitialPos)
if diag.HasErrors() {
return NewVariableValueRead(v.Name(), nil, diag)
}
value, diag := exp.Value(nil)
if strings.Contains(diag.Error(), "Variables not allowed") {
rawValue = fmt.Sprintf(`"%s"`, rawValue)
continue
}
if diag.HasErrors() {
return NewVariableValueRead(v.Name(), nil, diag)
}
return NewVariableValueRead(v.Name(), &value, nil)
}
}