Skip to content

Commit 8027023

Browse files
authored
Fallback to raw values in object attributes (#136)
1 parent 5857aee commit 8027023

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

hcledit_test.go

+14
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,20 @@ attribute = local.var
461461
},
462462
},
463463

464+
"fallback to absolute variable name in object": {
465+
input: `
466+
object = {
467+
attribute = local.var
468+
}
469+
`,
470+
options: []hcledit.Option{hcledit.WithReadFallbackToRawString()},
471+
expectErr: true,
472+
query: "object.attribute",
473+
want: map[string]interface{}{
474+
"object.attribute": "local.var",
475+
},
476+
},
477+
464478
"fallback to uninterpolated string": {
465479
input: `
466480
attribute = "some-${local.var}"

internal/handler/read.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,9 @@ func (h *readHandler) HandleBody(body *hclwrite.Body, name string, keyTrail []st
3636

3737
func (h *readHandler) HandleObject(object *ast.Object, name string, keyTrail []string) error {
3838
buf := object.GetObjectAttribute(name).BuildTokens().Bytes()
39-
value, err := parse(buf, name, h.fallbackToRawString)
40-
if err != nil {
39+
fallback := h.fallbackToRawString
40+
value, err := parse(buf, name, fallback)
41+
if err != nil && !fallback {
4142
return err
4243
}
4344
h.results[strings.Join(keyTrail, ".")] = value

0 commit comments

Comments
 (0)