package main import ( "log" "github.com/joho/godotenv" "github.com/kelseyhightower/envconfig" ) const configPath = ".env" type Config struct { CouchDBUsername string `envconfig:"COUCHDB_USERNAME" required:"true"` CouchDBPassword string `envconfig:"COUCHDB_PASSWORD" required:"true"` CouchDBProto string `envconfig:"COUCHDB_PROTO" required:"true" default:"https"` CouchDBPort string `envconfig:"COUCHDB_PORT" required:"true" default:""` CouchDBHost string `envconfig:"COUCHDB_HOST" required:"true"` CouchDBName string `envconfig:"COUCHDB_DBNAME" default:"autosklo"` SMTPHostname string `envconfig:"SMTP_HOSTNAME" default:"mailer.rosti.cz"` SMTPUsername string `envconfig:"SMTP_USERNAME" default:"web@nove-autosklo.cz"` SMTPPassword string `envconfig:"SMTP_PASSWORD" require:"true"` SMTPPort int `envconfig:"SMTP_PORT" default:"587"` EmailTo string `envconfig:"EMAIL_TO" default:"web@nove-autosklo.cz"` EmailFrom string `envconfig:"EMAIL_FROM" default:"no-reply@nove-autosklo.cz"` EmailSubject string `envconfig:"EMAIL_SUBJECT" default:"[WEB] Zpráva z rezervačního formuláře"` } func getConfig() Config { var config Config if len(configPath) != 0 { err := godotenv.Load(configPath) if err != nil { log.Fatalln(err) } } err := envconfig.Process("", &config) if err != nil { log.Fatalln(err) } return config }