33 lines
555 B
Go
33 lines
555 B
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
|
|
"github.com/asaskevich/govalidator"
|
|
)
|
|
|
|
// HTTPConf is HTTP config
|
|
type HTTPConf struct {
|
|
URL string `valid:"url" json:"-"`
|
|
Enabled bool `toml:"-" json:"-"`
|
|
}
|
|
|
|
const httpKey = "VULS_HTTP_URL"
|
|
|
|
// Validate validates configuration
|
|
func (c *HTTPConf) Validate() (errs []error) {
|
|
if !c.Enabled {
|
|
return nil
|
|
}
|
|
|
|
// overwrite if env var is not empty
|
|
if os.Getenv(httpKey) != "" {
|
|
c.URL = os.Getenv(httpKey)
|
|
}
|
|
|
|
if _, err := govalidator.ValidateStruct(c); err != nil {
|
|
errs = append(errs, err)
|
|
}
|
|
return errs
|
|
}
|