in config/config.go [61:86]
func GetAndValidateConfig(cfg *common.Config) (*Config, error) {
c := DefaultConfig
if err := cfg.Unpack(&c); err != nil {
return nil, fmt.Errorf("error in config file: %v", err)
}
if d, _ := time.ParseDuration("10m"); c.Subscription.RetentionDuration < d {
return nil, fmt.Errorf("retention_duration cannot be shorter than 10 minutes")
}
if d, _ := time.ParseDuration("168h"); c.Subscription.RetentionDuration > d {
return nil, fmt.Errorf("retention_duration cannot be longer than 7 days")
}
if cxns := c.Subscription.ConnectionPoolSize; cxns < 1 {
return nil, fmt.Errorf("Connection pool size must be >= 1, got: %d", cxns)
}
if c.CredentialsFile != "" {
if _, err := os.Stat(c.CredentialsFile); os.IsNotExist(err) {
return nil, fmt.Errorf("cannot find the credentials_file %q", c.CredentialsFile)
}
}
return &c, nil
}