package main import ( "encoding/json" "errors" "fmt" "io/ioutil" "log" "os" "time" ) var ( clogger *log.Logger ) func init() { clogger = log.New(os.Stdout, "[ Main ]", log.LstdFlags) } type Config struct { Limit int `json:limit` Interval string `json:interval` Epsilon float64 `json:epsilon` Verbose bool `json:verbose` DataSource string `json:dataSource` DBConn string `json:DBConn` DBName string `json:DBName` RawTable string `json:rawTable` CleanTable string `json:cleanTable` DBUser string `json:DBUser` DBPass string `json:DBPass` } func (cfg *Config) getInterval() (interval time.Duration, err error) { switch cfg.Interval { case "5min": interval = time.Minute * 5 case "10min": interval = time.Minute * 10 case "30min": interval = time.Minute * 30 case "hour": interval = time.Hour case "day": interval = time.Hour * 24 default: err = errors.New(fmt.Sprintf("Invalid interval: %s", cfg.Interval)) } return } func readConfig() (cfg *Config, err error) { clogger.Println("Reading config...") content, err := ioutil.ReadFile("config.json") if err != nil { log.Println(err) } err = json.Unmarshal(content, &cfg) if err != nil { log.Println(err) } clogger.Println("Done!") return }