commit | 439fbba1f887c286024370cb4f281ba815c4c7d7 | [log] [tgz] |
---|---|---|
author | Thomas Pelletier <pelletier.thomas@gmail.com> | Thu Dec 29 19:51:04 2016 +0100 |
committer | GitHub <noreply@github.com> | Thu Dec 29 19:51:04 2016 +0100 |
tree | 2669bf0dc326fb5a93a91da5d306e77c7aaed3bc | |
parent | 017119f7a78a0b5fc0ea39ef6be09f03acf3345d [diff] |
Make lexComment jump back to the previous state (#122) When a comment appears in an rvalue, the lexer needs to jump back to lexRValue, not to lexVoid. Fixes #120.
Go library for the TOML format.
This library supports TOML version v0.4.0
Go-toml provides the following features for using data parsed from TOML documents:
Go-toml is designed to help cover use-cases not covered by reflection-based TOML parsing:
import "github.com/pelletier/go-toml"
Say you have a TOML file that looks like this:
[postgres] user = "pelletier" password = "mypassword"
Read the username and password like this:
import ( "fmt" "github.com/pelletier/go-toml" ) config, err := toml.LoadFile("config.toml") if err != nil { fmt.Println("Error ", err.Error()) } else { // retrieve data directly user := config.Get("postgres.user").(string) password := config.Get("postgres.password").(string) // or using an intermediate object configTree := config.Get("postgres").(*toml.TomlTree) user = configTree.Get("user").(string) password = configTree.Get("password").(string) fmt.Println("User is ", user, ". Password is ", password) // show where elements are in the file fmt.Println("User position: %v", configTree.GetPosition("user")) fmt.Println("Password position: %v", configTree.GetPosition("password")) // use a query to gather elements without walking the tree results, _ := config.Query("$..[user,password]") for ii, item := range results.Values() { fmt.Println("Query result %d: %v", ii, item) } }
The documentation and additional examples are available at godoc.org.
Go-toml provides two handy command line tools:
tomll
: Reads TOML files and lint them.
go install github.com/pelletier/go-toml/cmd/tomll tomll --help
tomljson
: Reads a TOML file and outputs its JSON representation.
go install github.com/pelletier/go-toml/cmd/tomjson tomljson --help
Feel free to report bugs and patches using GitHub's pull requests system on pelletier/go-toml. Any feedback would be much appreciated!
You have to make sure two kind of tests run:
You can run both of them using ./test.sh
.
The MIT License (MIT). Read LICENSE.