Documentation ¶
Overview ¶
Package config load configuration values into given struct.
The struct must be passed by reference.
Fields must be exported. Unexported fields will be ignored. They can have the `env` tag which defines the key of the value. If no tag provided, the key will be the uppercase full path of the field (all the fields names starting the root until current field, joined by underscore).
The `json` tag will be used for loading from JSON.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Loader ¶
type Loader struct {
// contains filtered or unexported fields
}
Loader provides methods to load configuration values into a struct
func (*Loader) Bytes ¶
Bytes loads config into struct from byte array
Example ¶
package main import ( "fmt" "log" "github.com/andreiavrammsd/config" ) type Config struct { Username string `env:"USERNAME"` Tag string `env:"TAG" default:"none"` } func main() { input := []byte(`USERNAME=msd # username`) cfg := Config{} if err := config.Load(&cfg).Bytes(input); err != nil { log.Fatalf("cannot load config: %s", err) } fmt.Println(cfg.Username) }
Output: msd
func (*Loader) Env ¶
Env loads config into struct from environment variables
Example ¶
package main import ( "fmt" "log" "os" "github.com/andreiavrammsd/config" ) type Config struct { Username string `env:"USERNAME"` Tag string `env:"TAG" default:"none"` } func main() { if err := os.Setenv("USERNAME", "msd"); err != nil { log.Fatal(err) } cfg := Config{} if err := config.Load(&cfg).Env(); err != nil { log.Fatalf("cannot load config: %s", err) } fmt.Println(cfg.Username) fmt.Println(cfg.Tag) }
Output: msd none
func (*Loader) EnvFile ¶
EnvFile loads config into struct from environment variables in one or multiple files (dotenv). If no file is passed, the default is ".env".