environment-toml
Go library for environment specific settings loader defined by TOML.
Features
- Load TOML and setup setting struct.
- When environment specific setting defined, overwrite default settings.
Install
go get github.com/pelletier/go-toml
go get github.com/nirasan/environment-toml
Usage
Import
import "github.com/nirasan/environment-toml"
Define setting file
[user]
name = "user1"
age = 10
[user.development]
name = "user2"
[user.production]
name = "user3"
age = 20
Define setting struct
type Config struct {
User User
}
type User struct {
Name string
Age int64
}
Load development setting
// `development` environment
c := &Config{}
err := toml.Load(c, "config.toml", "development")
if err != nil {
log.Fatal(err)
}
fmt.Println( c.User.Name ) //=> user2 | user.name overwritten by user.development.name
fmt.Println( c.User.Age ) //=> 10 | user.age
Load production setting
// `production` environment
c := &Config{}
err := toml.Load(c, "config.toml", "production")
if err != nil {
log.Fatal(err)
}
fmt.Println( c.User.Name ) //=> user3 | user.name overwritten by user.production.name
fmt.Println( c.User.Age ) //=> 20 | user.age overwritten by user.production.age
Examples
Basic types (environment: development)
Basic types (environment: production)
Struct type (environment: development)
Struct type (environment: production)
License
MIT