mirror of
https://github.com/ko-build/ko.git
synced 2025-02-22 20:24:43 +02:00
* Preserve YAML comments & style when resolving/applying This is accomplished by adopting the yaml.v3 lib. It exposes a Node struct that's used internally by the yaml encoder/decoder ko internally now manipulates YAML documents using this struct Fixes #101 * add/remove vendored modules * Apply suggestions from code review Fix comments Co-Authored-By: jonjohnsonjr <jonjohnson@google.com> * update doc link * Fix use of yaml.Decoder in a test When the yaml.Decoder returns an io.EOF it implies there were no YAML documents decoded and that there are no more! * Update pkg/resolve/resolve.go resolve comment suggestion Co-Authored-By: jonjohnsonjr <jonjohnson@google.com> * leave ko prefix if we're not operating in strict mode * move testutils to internal/testing
go-yit - YAML Iterator
Introduction
This library compliments go-yaml v3 by adding functional style methods for iterating over YAML documents.
Usage
Import the package
import "github.com/dprotaso/go-yit"
Query your YAML document
package main
import (
"fmt"
"log"
"github.com/dprotaso/go-yit"
"gopkg.in/yaml.v3"
)
var data = `
a: b
c: d
e: f
`
func main() {
var doc yaml.Node
err := yaml.Unmarshal([]byte(data), &doc)
if err != nil {
log.Fatalf("error: %v", err)
}
it := yit.FromNode(&doc).
RecurseNodes().
Filter(yit.WithKind(yaml.MappingNode)).
MapKeys()
for node, ok := it(); ok; node, ok = it() {
fmt.Println(node.Value)
}
}