Documentation ¶
Overview ¶
package envvar helps you manage environment variables. It maps environment variables to typed fields in a struct, and supports required and optional vars with defaults.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Parse ¶
func Parse(v interface{}) error
Parse parses environment variables into v, which must be a pointer to a struct. Because of the way envvar uses reflection, the fields in v must be exported, i.e. start with a capital letter. For each field in v, Parse will get the environment variable with the same name as the field and set the field to the value of that environment variable, converting it to the appropriate type if needed.
Parse supports two struct tags, which can be used together or separately. The struct tag `envvar` can be used to specify the name of the environment variable that corresponds to a field. If the `envvar` struct tag is not provided, the default is to look for an environment variable with the same name as the field. The struct tag `default` can be used to set the default value for a field. The default value must be a string, but will be converted to match the type of the field as needed. If the `default` struct tag is not provided, the corresponding environment variable is required, and Parse will return an error if it is not defined. When the `default` struct tag is provided, the environment variable is considered optional, and if set, the value of the environment variable will override the default value.
Parse will return an UnsetVariableError if a required environment variable was not set. It will also return an error if there was a problem converting environment variable values to the proper type or setting the fields of v.
If a field of v implements the encoding.TextUnmarshaler interface, Parse will call the UnmarshalText method on the field in order to set its value.
func ParseWithConfig ¶ added in v1.1.0
ParseWithConfig allows the call to Parse() with custom configurations.
Types ¶
type Config ¶ added in v1.1.0
type Config struct { // Getenv is a custom function to retrieve envvars with. Getenv func(key string) (value string, found bool) }
Config is used to control the parsing behavior of the go-envvar package.
type ErrorList ¶ added in v0.2.0
type ErrorList struct {
Errors []error
}
ErrorList is list of independent errors raised by Parse
type GetenvFn ¶ added in v1.1.0
GetenvFn is a custom function to retrieve envvars.
given a key, it returns (value, true) if a given envvar exists, ("", false) otherwise. syscall.Getenv should satisfy this type signature.
type InvalidArgumentError ¶ added in v0.2.0
type InvalidArgumentError struct {
// contains filtered or unexported fields
}
InvalidArgumentError is raised when an invalid argument passed.
func (InvalidArgumentError) Error ¶ added in v0.2.0
func (e InvalidArgumentError) Error() string
type InvalidFieldError ¶ added in v1.0.0
InvalidFieldError is returned by Parse whenever a given struct field is unsupported.
func (InvalidFieldError) Error ¶ added in v1.0.0
func (e InvalidFieldError) Error() string
type InvalidVariableError ¶ added in v0.2.0
type InvalidVariableError struct { VarName string VarValue string // contains filtered or unexported fields }
InvalidVariableError is returned when a given env var cannot be parsed to a given struct field.
func (InvalidVariableError) Error ¶ added in v0.2.0
func (e InvalidVariableError) Error() string
Error satisfies the error interface
type UnsetVariableError ¶
type UnsetVariableError struct { // VarName is the name of the required environment variable that was not set VarName string }
UnsetVariableError is returned by Parse whenever a required environment variable is not set.
func (UnsetVariableError) Error ¶
func (e UnsetVariableError) Error() string
Error satisfies the error interface