| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package main
- import (
- "fmt"
- "time"
- "github.com/coreos/etcd/third_party/github.com/BurntSushi/toml"
- )
- type tomlConfig struct {
- Title string
- Owner ownerInfo
- DB database `toml:"database"`
- Servers map[string]server
- Clients clients
- }
- type ownerInfo struct {
- Name string
- Org string `toml:"organization"`
- Bio string
- DOB time.Time
- }
- type database struct {
- Server string
- Ports []int
- ConnMax int `toml:"connection_max"`
- Enabled bool
- }
- type server struct {
- IP string
- DC string
- }
- type clients struct {
- Data [][]interface{}
- Hosts []string
- }
- func main() {
- var config tomlConfig
- if _, err := toml.DecodeFile("example.toml", &config); err != nil {
- fmt.Println(err)
- return
- }
- fmt.Printf("Title: %s\n", config.Title)
- fmt.Printf("Owner: %s (%s, %s), Born: %s\n",
- config.Owner.Name, config.Owner.Org, config.Owner.Bio, config.Owner.DOB)
- fmt.Printf("Database: %s %v (Max conn. %d), Enabled? %v\n",
- config.DB.Server, config.DB.Ports, config.DB.ConnMax, config.DB.Enabled)
- for serverName, server := range config.Servers {
- fmt.Printf("Server: %s (%s, %s)\n", serverName, server.IP, server.DC)
- }
- fmt.Printf("Client data: %v\n", config.Clients.Data)
- fmt.Printf("Client hosts: %v\n", config.Clients.Hosts)
- }
|