package v1 import ( "encoding/json" "io/ioutil" "log" "net/smtp" ) type Config struct { Address string `json:"address"` Port string `json:"port"` DevFrontendUrl string `json:"dev_frontend_url"` FrontendUrl string `json:"frontend_url"` CDNPath string `json:"cdn_path"` CDNUrl string `json:"cdn_url"` Version string `json:"version"` Build uint32 `json:"build"` Debug bool `json:"debug"` } type PrivateConfig struct { AuthTokenSecret string `json:"auth_token"` ActivateTokenSecret string `json:"activate_token"` RecaptchaSecret string `json:"recaptcha"` Database struct { User string `json:"user"` Password string `json:"password"` URL string `json:"url"` Name string `json:"name"` } `json:"database"` Email struct { Username string `json:"username"` Password string `json:"password"` Host string `json:"host"` } `json:"email"` } var ( config *Config privateConfig *PrivateConfig mailAuth smtp.Auth ) func LoadConfig() *Config { data, err := ioutil.ReadFile("config.json") if err != nil { log.Fatalln(err) } err = json.Unmarshal(data, &config) if err != nil { log.Fatalln(err) } return config } func LoadPrivateConfig() { data, err := ioutil.ReadFile("private.config.json") if err != nil { log.Fatalln(err) } err = json.Unmarshal(data, &privateConfig) if err != nil { log.Fatalln(err) } mailAuth = smtp.PlainAuth("", privateConfig.Email.Username, privateConfig.Email.Password, privateConfig.Email.Host) }