You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
533 B
37 lines
533 B
package config
|
|
|
|
import (
|
|
"log"
|
|
|
|
"github.com/kelseyhightower/envconfig"
|
|
)
|
|
|
|
type appConfig struct {
|
|
Port int `envconfig:"APP_PORT"`
|
|
}
|
|
|
|
type kafkaConfig struct {
|
|
Port int `envconfig:"KAFKA_PORT"`
|
|
Host string `envconfig:"KAFKA_HOST"`
|
|
}
|
|
|
|
type sentryConfig struct {
|
|
DSN string `envconfig:"SENTRY_DSN"`
|
|
}
|
|
|
|
// ...
|
|
type Config struct {
|
|
App appConfig
|
|
Kafka kafkaConfig
|
|
Sentry sentryConfig
|
|
}
|
|
|
|
func NewConfig() *Config {
|
|
c := Config{}
|
|
err := envconfig.Process("", &c)
|
|
if err != nil {
|
|
log.Fatal(err.Error())
|
|
}
|
|
|
|
return &c
|
|
}
|
|
|