mirror of
https://github.com/mikefarah/yq.git
synced 2024-11-12 05:38:04 +00:00
added EvaluateNodes and EvaluateCandidateNodes to yqlib
This commit is contained in:
parent
55712afea6
commit
9ae03e0a1c
@ -166,6 +166,24 @@ func NodeToString(node *CandidateNode) string {
|
||||
return fmt.Sprintf(`D%v, P%v, (%v)::%v`, node.Document, node.Path, tag, buf.String())
|
||||
}
|
||||
|
||||
// EvaluateNodes takes an expression and one or more yaml nodes, returning a list of matching candidate nodes
|
||||
func EvaluateNodes(expression string, nodes ...*yaml.Node) (*list.List, error) {
|
||||
inputCandidates := list.New()
|
||||
for _, node := range nodes {
|
||||
inputCandidates.PushBack(&CandidateNode{Node: node})
|
||||
}
|
||||
return EvaluateCandidateNodes(expression, inputCandidates)
|
||||
}
|
||||
|
||||
// EvaluateCandidateNodes takes an expression and list of candidate nodes, returning a list of matching candidate nodes
|
||||
func EvaluateCandidateNodes(expression string, inputCandidates *list.List) (*list.List, error) {
|
||||
node, err := treeCreator.ParsePath(expression)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return treeNavigator.GetMatchingNodes(inputCandidates, node)
|
||||
}
|
||||
|
||||
func KindString(kind yaml.Kind) string {
|
||||
switch kind {
|
||||
case yaml.ScalarNode:
|
||||
|
Loading…
Reference in New Issue
Block a user