func configReader(fileName string) error { stat, err := os.Stat(fileName) if err != nil { log.Printf("Failed to find config file: %s\n", err) return err } if !stat.ModTime().After(lastReadConfig) { return err } lastReadConfig = time.Now() log.Printf("Loading config: %s\n", fileName) cfg := new(AppConfig) err = gcfg.ReadFileInto(cfg, fileName) if err != nil { log.Printf("Failed to parse config data: %s\n", err) return err } cfg.Flags.HasStatHat = len(cfg.StatHat.ApiKey) > 0 // log.Println("STATHAT APIKEY:", cfg.StatHat.ApiKey) // log.Println("STATHAT FLAG :", cfg.Flags.HasStatHat) Config = cfg return nil }
func configReader(fileName string) error { stat, err := os.Stat(fileName) if err != nil { log.Printf("Failed to find config file: %s\n", err) return err } if !stat.ModTime().After(lastReadConfig) { return err } lastReadConfig = time.Now() log.Printf("Loading config: %s\n", fileName) cfg := new(AppConfig) err = gcfg.ReadFileInto(cfg, fileName) if err != nil { log.Printf("Failed to parse config data: %s\n", err) return err } cfg.Flags.HasStatHat = len(cfg.StatHat.ApiKey) > 0 // log.Println("STATHAT APIKEY:", cfg.StatHat.ApiKey) // log.Println("STATHAT FLAG :", cfg.Flags.HasStatHat) cfgMutex.Lock() *Config = *cfg // shallow copy to prevent race conditions in referring to Config.foo() cfgMutex.Unlock() return nil }