in cmd/cpe2cve/config.go [141:194]
func readConfigFile(file string) (config, error) {
f, err := os.Open(file)
if err != nil {
return config{}, err
}
defer f.Close()
var cfg config
switch ext := path.Ext(file); ext {
case ".json":
// Example:
// {
// "CVEsAt": 3,
// "ProviderAt": 2,
// "Feeds": {
// "foo": ["foo.json"],
// "bar": ["bar.json", "bar2.json.gz"]
// }
// }
err = json.NewDecoder(f).Decode(&cfg)
case ".toml":
// Example:
// CVEsAt = 3
// ProviderAt = 2
// [Feeds]
// foo = ["foo.json"]
// bar = ["bar.json", "bar2.json.gz"]
_, err = toml.NewDecoder(f).Decode(&cfg)
default:
return cfg, fmt.Errorf("unsupported file extension: %q", ext)
}
if err == nil {
// set defaults
if cfg.InFieldSeparator == "" {
cfg.InFieldSeparator = "\t"
}
if cfg.InRecordSeparator == "" {
cfg.InRecordSeparator = ","
}
if cfg.OutFieldSeparator == "" {
cfg.OutFieldSeparator = "\t"
}
if cfg.OutRecordSeparator == "" {
cfg.OutRecordSeparator = ","
}
if cfg.NumProcessors == 0 {
cfg.NumProcessors = 1
}
}
return cfg, err
}