Handle multiple interpolations in string.
A user testing an RC release of Terraform 0.6.7 found the following string unexpectedly caused a syntax error: "echo ${var.region}${element(split(",",var.zones),0)}" This fixes the error and covers it with a test.
This commit is contained in:
parent
da2740d4c5
commit
5612ebd968
@ -86,7 +86,12 @@ func Unquote(s string) (t string, err error) {
|
|||||||
return "", ErrSyntax
|
return "", ErrSyntax
|
||||||
}
|
}
|
||||||
if len(s) == 0 {
|
if len(s) == 0 {
|
||||||
|
// If there's no string left, we're done!
|
||||||
break
|
break
|
||||||
|
} else {
|
||||||
|
// If there's more left, we need to pop back up to the top of the loop
|
||||||
|
// in case there's another interpolation in this string.
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,6 +37,8 @@ var unquotetests = []unQuoteTest{
|
|||||||
{`"'"`, "'"},
|
{`"'"`, "'"},
|
||||||
{`"${file("foo")}"`, `${file("foo")}`},
|
{`"${file("foo")}"`, `${file("foo")}`},
|
||||||
{`"${file(\"foo\")}"`, `${file("foo")}`},
|
{`"${file(\"foo\")}"`, `${file("foo")}`},
|
||||||
|
{`"echo ${var.region}${element(split(",",var.zones),0)}"`,
|
||||||
|
`echo ${var.region}${element(split(",",var.zones),0)}`},
|
||||||
}
|
}
|
||||||
|
|
||||||
var misquoted = []string{
|
var misquoted = []string{
|
||||||
|
Loading…
Reference in New Issue
Block a user