Для работы с переменными окружения в Golang без использования библиотеки envconfig просто не обойтись:
//AppConfig struct to manage configuration env vars
type AppConfig struct {
DBHost string `envconfig:"DB_HOST" required:"true"`
DBPort int `envconfig:"DB_PORT" required:"true"`
DBUser string `envconfig:"DB_USER" required:"true"`
DBName string `envconfig:"DB_NAME" required:"true"`
DBPassword string `envconfig:"DB_PASSWORD" required:"true"`
}
...
// and let's use it in our main func:
var cfg AppConfig
err := envconfig.Process("myApp", &cfg)
if err != nil {
return nil, err
}
// finally, let's use our app configuration
fmt.Println(cfg.DBHost)
Библиотека также поддерживает default значения, required флаги, custom декодеры и многое многое другое.