minikube/vendor/github.com/pelletier/go-toml
minikube-bot 5cf6d08f3d Upgrade to k8s version v1.5.0-alpha.0
Upgrade to k8s version v1.5.0-alpha.1

Upgrade to k8s version v1.5.0-alpha.2

Update to k8s v1.5.0-beta.1
2016-12-13 11:21:43 -08:00
..
.gitignore Upgrade viper to ed0a9674c6ef3646e218d8bb70708d250e94354b 2016-09-23 15:11:30 -07:00
.travis.yml Upgrade viper to ed0a9674c6ef3646e218d8bb70708d250e94354b 2016-09-23 15:11:30 -07:00
LICENSE Upgrade viper to ed0a9674c6ef3646e218d8bb70708d250e94354b 2016-09-23 15:11:30 -07:00
README.md Upgrade to k8s version v1.5.0-alpha.0 2016-12-13 11:21:43 -08:00
clean.sh Upgrade viper to ed0a9674c6ef3646e218d8bb70708d250e94354b 2016-09-23 15:11:30 -07:00
doc.go Upgrade viper to ed0a9674c6ef3646e218d8bb70708d250e94354b 2016-09-23 15:11:30 -07:00
example-crlf.toml Upgrade viper to ed0a9674c6ef3646e218d8bb70708d250e94354b 2016-09-23 15:11:30 -07:00
example.toml Upgrade viper to ed0a9674c6ef3646e218d8bb70708d250e94354b 2016-09-23 15:11:30 -07:00
keysparsing.go Upgrade to k8s version v1.5.0-alpha.0 2016-12-13 11:21:43 -08:00
lexer.go Upgrade to k8s version v1.5.0-alpha.0 2016-12-13 11:21:43 -08:00
match.go Upgrade viper to ed0a9674c6ef3646e218d8bb70708d250e94354b 2016-09-23 15:11:30 -07:00
parser.go Upgrade viper to ed0a9674c6ef3646e218d8bb70708d250e94354b 2016-09-23 15:11:30 -07:00
position.go Upgrade viper to ed0a9674c6ef3646e218d8bb70708d250e94354b 2016-09-23 15:11:30 -07:00
query.go Upgrade viper to ed0a9674c6ef3646e218d8bb70708d250e94354b 2016-09-23 15:11:30 -07:00
querylexer.go Upgrade viper to ed0a9674c6ef3646e218d8bb70708d250e94354b 2016-09-23 15:11:30 -07:00
queryparser.go Upgrade viper to ed0a9674c6ef3646e218d8bb70708d250e94354b 2016-09-23 15:11:30 -07:00
test.sh Upgrade viper to ed0a9674c6ef3646e218d8bb70708d250e94354b 2016-09-23 15:11:30 -07:00
token.go Upgrade viper to ed0a9674c6ef3646e218d8bb70708d250e94354b 2016-09-23 15:11:30 -07:00
toml.go Upgrade to k8s version v1.5.0-alpha.0 2016-12-13 11:21:43 -08:00
tomltree_conversions.go Upgrade to k8s version v1.5.0-alpha.0 2016-12-13 11:21:43 -08:00

README.md

go-toml

Go library for the TOML format.

This library supports TOML version v0.4.0

GoDoc Build Status Coverage Status

Features

Go-toml provides the following features for using data parsed from TOML documents:

  • Load TOML documents from files and string data
  • Easily navigate TOML structure using TomlTree
  • Line & column position data for all parsed elements
  • Query support similar to JSON-Path
  • Syntax errors contain line and column numbers

Go-toml is designed to help cover use-cases not covered by reflection-based TOML parsing:

  • Semantic evaluation of parsed TOML
  • Informing a user of mistakes in the source document, after it has been parsed
  • Programatic handling of default values on a case-by-case basis
  • Using a TOML document as a flexible data-store

Import

import "github.com/pelletier/go-toml"

Usage

Example

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)
    }
}

Documentation

The documentation and additional examples are available at godoc.org.

Tools

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
    

Contribute

Feel free to report bugs and patches using GitHub's pull requests system on pelletier/go-toml. Any feedback would be much appreciated!

Run tests

You have to make sure two kind of tests run:

  1. The Go unit tests
  2. The TOML examples base

You can run both of them using ./test.sh.

License

The MIT License (MIT). Read LICENSE.