Small lib to avoid boiler plate code around environment variables.
import "github.com/spider-pigs/envlookup"
Set some environment variables:
export JAZZ_ARTIST="John Coltrane" export PLAYED_WITH_MILES_DAVIES=true export NO_OF_STUDIO_ALBUMS="51" export RECORD_LABELS="Impulse!,Atlantic,Prestige,Blue Note" export LONGEST_RECORDED_TRACK="27m32s"
Get an env var value. If the value does not exist, an error will be returned:
s, err := envlookup.String("JAZZ_ARTIST")
Get an env var value or a default value if it does not exist:
s, err := envlookup.String("JAZZ_SAXOPHONIST", "Wayne Shorter")
There are must helper functions for mandatory env vars (panics if err is non-nil):
s := envlookup.MustString(envlookup.String("JAZZ_SAXOPHONIST"))
To get values as a slice (comma-separated string):
s, err := envlookup.Slice("RECORD_LABELS")
Boolean values are supported:
b, err := envlookup.Bool("PLAYED_WITH_MILES_DAVIES")
Get float (64 bit) or int envs:
i, err := envlookup.Int("NO_OF_STUDIO_ALBUMS")
To get a duration value:
d, err := envlookup.Duration("LONGEST_RECORDED_TRACK")
If an env var is not set (and there is no default value set), a NotFoundError will be returned:
d, err := envlookup.Duration("LONGEST_ALBUM") if _, ok := err.(*envlookup.NotFoundError); ok { log.Println(err) // could not find environment variable "LONGEST_ALBUM" ... }
If an env var can not be parsed as the expected return type, a ParseError will be returned:
f, err := envlookup.Float64("LONGEST_RECORDED_TRACK") if _, ok := err.(*envlookup.ParseError); ok { log.Println(err) // could not parse environment variable "LONGEST_RECORDED_TRACK": strconv.ParseFloat: parsing "27m32s": invalid syntax ... }