Skip to content

Latest commit

 

History

History
97 lines (75 loc) · 1.76 KB

README_cn.md

File metadata and controls

97 lines (75 loc) · 1.76 KB

configer

配置文件加载,支持INI,XML,YAML,JSON,HCL,TOML,Shell环境

安装

go get -u -v github.com/wzshiming/configer

使用

API 文档

示例

优先级: 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许可证

软包根据MIT License。有关完整的许可证文本,请参阅LICENSE