25 lines
643 B
Go
25 lines
643 B
Go
// Package config loads typed config from env.
|
|
package config
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/caarlos0/env/v11"
|
|
)
|
|
|
|
type Config struct {
|
|
Host string `env:"HOST" envDefault:"0.0.0.0"`
|
|
Port int `env:"PORT" envDefault:"8080"`
|
|
ShutdownTimeout time.Duration `env:"SHUTDOWN_TIMEOUT" envDefault:"20s"`
|
|
LogLevel string `env:"LOG_LEVEL" envDefault:"info"`
|
|
LogFormat string `env:"LOG_FORMAT" envDefault:"json"`
|
|
}
|
|
|
|
func Load() (Config, error) {
|
|
var cfg Config
|
|
if err := env.Parse(&cfg); err != nil {
|
|
return Config{}, err
|
|
}
|
|
return cfg, nil
|
|
}
|