配置文件加载,支持INI,XML,YAML,JSON,HCL,TOML,Shell环境
go get -u -v github.com/wzshiming/configer
优先级: env > default > conf
package main
import (
configer "github.com/wzshiming/configer"
ffmt "gopkg.in/ffmt.v1"
)
func main() {
examples1()
}
type BB struct {
Hello string `configer:"world"` // 取默认值 "world"
Shell string `configer:",env" env:"SHELL"` // 从 env 环境变量里取
EnvNone string `configer:",env" env:"NONE"` // 空的 env
}
type TT struct {
LoadFilePath string `configer:"./examples1.json,env"` // 加载文件的路径
BB BB `configer:",load" load:"LoadFilePath"` // 加载路径字段
}
func examples1() {
b := BB{}
configer.Load(&b)
ffmt.Puts(b)
/*
{
Hello: "world"
Shell: "/bin/bash"
EnvNone: ""
}
*/
configer.Load(&b, "./examples1.json")
ffmt.Puts(b)
/*
{
Hello: "json"
Shell: "/bin/bash"
EnvNone: "env none"
}
*/
t := TT{}
configer.Load(&t)
ffmt.Puts(t)
/*
{
LoadFilePath: "./examples1.json"
BB: {
Hello: "json"
Shell: "/bin/bash"
EnvNone: "env none"
}
}
*/
}
文件: examples1.json:
{
"Hello": "json",
"Shell": "Priority default < env",
"EnvNone": "env none"
}
软包根据MIT License。有关完整的许可证文本,请参阅LICENSE。