Skip to content

Latest commit

 

History

History
53 lines (37 loc) · 1014 Bytes

README.md

File metadata and controls

53 lines (37 loc) · 1014 Bytes

Go Config

Package provides routines that loads configuration into provided structure from provided sources.

Example

type Config struct {
	Redis *types.RedisConfig

	Name  string `description:"user's name'"`
	Pass  string `cfg:"password" description:"user's password'"`

	GasPeerTx           float64

	Timeout             uint
	PricePerAction      int

	AllowRegistration   bool
}

func main() {
	c := Config{}
	cfgr := configurer.New()
	
	// parse env variables
	cfgr.Use(env.Source())
	
	// parse flags
	cfgr.Use(flag.Source())
	
	// parse json file
	cfgr.Use(json.FileSource("./config/configurations.json"))
	
	// parse consul KV values
	cfgr.Use(consul.Source("/project/name"))
	
	cfgr.Configure(&c)
}

Supported field tags:

  • cfg:"param_name"
  • description:"variable description"
  • default:"default_value"
  • consul:"/kv/path/to/json/config"

Supported sources:

  • env variables
  • flags
  • json file
  • consul (you can define relative path in structure's tag and basepath in consul source creation)