5104ec5505 | ||
---|---|---|
.. | ||
.gitignore | ||
.travis.yml | ||
LICENSE | ||
README.md | ||
api.go | ||
decode.go | ||
emitter.go | ||
encode.go | ||
libyaml-LICENSE | ||
parser.go | ||
reader.go | ||
resolver.go | ||
run_parser.go | ||
scanner.go | ||
tags.go | ||
writer.go | ||
yaml_definesh.go | ||
yaml_privateh.go | ||
yamlh.go |
README.md
candiedyaml
YAML for Go
A YAML 1.1 parser with support for YAML 1.2 features
Usage
package myApp
import (
"github.com/cloudfoundry-incubator/candiedyaml"
"fmt"
"os"
)
func main() {
file, err := os.Open("path/to/some/file.yml")
if err != nil {
println("File does not exist:", err.Error())
os.Exit(1)
}
defer file.Close()
document := new(interface{})
decoder := candiedyaml.NewDecoder(file)
err = decoder.Decode(document)
if err != nil {
println("Failed to decode document:", err.Error())
}
println("parsed yml into interface:", fmt.Sprintf("%#v", document))
fileToWrite, err := os.Create("path/to/some/new/file.yml")
if err != nil {
println("Failed to open file for writing:", err.Error())
os.Exit(1)
}
defer fileToWrite.Close()
encoder := candiedyaml.NewEncoder(fileToWrite)
err = encoder.Encode(document)
if err != nil {
println("Failed to encode document:", err.Error())
os.Exit(1)
}
return
}