Skip to content

orsinium-labs/configenv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

configenv

Go package for parsing env vars.

The main idea is to enforce (on the package API design level) the best practice of parsing env vars: prevent duplicate names, wrong types, typos, etc. See Writing safe-to-use Go libraries on the design principles behind my Go packages, including this one.

Also, try out cliff, a package for safely parsing CLI args.

Installation

go get github.com/orsinium-labs/configenv

Usage

Given the following parser:

type Config struct {
    Debug bool
    Env   string
}

config := Config{}
vars := configenv.Vars{
    "DEBUG": configenv.Required(configenv.Bool(&config.Debug)),
    "ENV":   configenv.String(&config.Env),
}
err := vars.Parse(configenv.Config{Prefix: "BE_"})

And the following env vars:

export BE_DEBUG=true
export BE_ENV=prod

You will get Config{Debug: true, Env: "prod"}

If you instead of BE_DEBUG=true provide DEBUG=true, BE_DEUG=true, or BE_DEBUG=maybe, the parser will detect it and return an error.

About

The safest Go package for parsing env vars

Topics

Resources

License

Stars

Watchers

Forks

Languages