mirror of
https://github.com/Luzifer/rconfig.git
synced 2024-12-20 19:21:19 +00:00
Package rconfig implements a CLI configuration reader with struct-embedded defaults, environment variables and posix compatible flag parsing
config.go | ||
config_test.go | ||
example_test.go | ||
LICENSE | ||
README.md |
Description
Package rconfig implements a CLI configuration reader with struct-embedded defaults, environment variables and posix compatible flag parsing using the pflag library.
Installation
Install by running:
go get -u github.com/Luzifer/rconfig
Run tests by running:
go test -v -race -cover github.com/Luzifer/rconfig
Usage
As a first step define a struct holding your configuration:
type config struct {
Username string `default:"unknown" flag:"user" description:"Your name"`
Details struct {
Age int `default:"25" flag:"age" env:"age" description:"Your age"`
}
}
Next create an instance of that struct and let rconfig
fill that config:
var cfg config
func init() {
cfg = config{}
rconfig.Parse(&cfg)
}
You're ready to access your configuration:
func main() {
fmt.Printf("Hello %s, happy birthday for your %dth birthday.",
cfg.Username,
cfg.Details.Age)
}
More info
You can see the full reference documentation of the rconfig package at godoc.org, or through go's standard documentation system by running godoc -http=:6060
and browsing to http://localhost:6060/pkg/github.com/Luzifer/rconfig after installation.