mirror of
https://github.com/mikefarah/yq.git
synced 2024-11-12 05:38:04 +00:00
Fixed explode for simple anchors
This commit is contained in:
parent
b116f40348
commit
108b5cb093
@ -293,6 +293,20 @@ func TestReadMergeAnchorsExplodeJsonCmd(t *testing.T) {
|
|||||||
test.AssertResult(t, expectedOutput, result.Output)
|
test.AssertResult(t, expectedOutput, result.Output)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestReadMergeAnchorsExplodeSimpleCmd(t *testing.T) {
|
||||||
|
cmd := getRootCommand()
|
||||||
|
result := test.RunCmd(cmd, "read -X ../examples/simple-anchor.yaml")
|
||||||
|
if result.Error != nil {
|
||||||
|
t.Error(result.Error)
|
||||||
|
}
|
||||||
|
expectedOutput := `foo:
|
||||||
|
a: 1
|
||||||
|
foobar:
|
||||||
|
a: 1
|
||||||
|
`
|
||||||
|
test.AssertResult(t, expectedOutput, result.Output)
|
||||||
|
}
|
||||||
|
|
||||||
func TestReadMergeAnchorsExplodeCmd(t *testing.T) {
|
func TestReadMergeAnchorsExplodeCmd(t *testing.T) {
|
||||||
cmd := getRootCommand()
|
cmd := getRootCommand()
|
||||||
result := test.RunCmd(cmd, "read -X ../examples/merge-anchor.yaml")
|
result := test.RunCmd(cmd, "read -X ../examples/merge-anchor.yaml")
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
foo: &foo
|
foo: &foo
|
||||||
a: 1
|
a: 1
|
||||||
|
|
||||||
foobar: *foo
|
foobar:
|
||||||
|
<<: *foo
|
@ -98,7 +98,6 @@ func (n *navigator) recurseMap(value *yaml.Node, head string, tail []string, pat
|
|||||||
log.Debug("recurseMap: visitMatchingEntries for %v", contents[indexInMap].Value)
|
log.Debug("recurseMap: visitMatchingEntries for %v", contents[indexInMap].Value)
|
||||||
n.navigationStrategy.DebugVisitedNodes()
|
n.navigationStrategy.DebugVisitedNodes()
|
||||||
newPathStack := append(pathStack, contents[indexInMap].Value)
|
newPathStack := append(pathStack, contents[indexInMap].Value)
|
||||||
n.navigationStrategy.DebugVisitedNodes()
|
|
||||||
log.Debug("should I traverse? head: %v, path: %v", head, pathStackToString(newPathStack))
|
log.Debug("should I traverse? head: %v, path: %v", head, pathStackToString(newPathStack))
|
||||||
DebugNode(value)
|
DebugNode(value)
|
||||||
if n.navigationStrategy.ShouldTraverse(NewNodeContext(contents[indexInMap+1], head, tail, newPathStack), contents[indexInMap].Value) {
|
if n.navigationStrategy.ShouldTraverse(NewNodeContext(contents[indexInMap+1], head, tail, newPathStack), contents[indexInMap].Value) {
|
||||||
@ -172,10 +171,10 @@ func (n *navigator) visitAliases(contents []*yaml.Node, head string, tail []stri
|
|||||||
// a node can either be
|
// a node can either be
|
||||||
// an alias to one other node (e.g. <<: *blah)
|
// an alias to one other node (e.g. <<: *blah)
|
||||||
// or a sequence of aliases (e.g. <<: [*blah, *foo])
|
// or a sequence of aliases (e.g. <<: [*blah, *foo])
|
||||||
log.Debug("checking for aliases")
|
log.Debug("checking for aliases, head: %v, pathstack: %v", head, pathStackToString(pathStack))
|
||||||
for index := len(contents) - 2; index >= 0; index = index - 2 {
|
for index := len(contents) - 2; index >= 0; index = index - 2 {
|
||||||
|
|
||||||
if contents[index+1].Kind == yaml.AliasNode {
|
if contents[index+1].Kind == yaml.AliasNode && contents[index].Value == "<<" {
|
||||||
valueNode := contents[index+1]
|
valueNode := contents[index+1]
|
||||||
log.Debug("found an alias")
|
log.Debug("found an alias")
|
||||||
DebugNode(contents[index])
|
DebugNode(contents[index])
|
||||||
|
Loading…
Reference in New Issue
Block a user