| 123456789101112131415161718192021222324252627282930313233343536373839 |
- package config
- import (
- "log"
- "time"
- "github.com/joeshaw/envdecode"
- )
- type Conf struct {
- Debug bool `env:"DEBUG,required"`
- Server ServerConf
- Db DBConf
- }
- type ServerConf struct {
- Port int `env:"SERVER_PORT,required"`
- TimeoutRead time.Duration `env:"SERVER_TIMEOUT_READ,required"`
- TimeoutWrite time.Duration `env:"SERVER_TIMEOUT_WRITE,required"`
- TimeoutIdle time.Duration `env:"SERVER_TIMEOUT_IDLE,required"`
- }
- type DBConf struct {
- Host string `env:"DB_HOST,required"`
- Port int `env:"DB_PORT,required"`
- Username string `env:"DB_USER,required"`
- Password string `env:"DB_PASS,required"`
- DbName string `env:"DB_NAME,required"`
- }
- func AppConfig() *Conf {
- var c Conf
- if err := envdecode.StrictDecode(&c); err != nil {
- log.Fatalf("Failed to decode: %s", err)
- }
- return &c
- }
|