in providers/nvd/cve.go [147:195]
func cveFileList(c CVE) []cveFile {
filefmt := func(version, suffix, encoding, compression string) string {
s := fmt.Sprintf("nvdcve-%s-%s.%s", version, suffix, encoding)
if compression != "" {
s += "." + compression
}
return s
}
// nvd data feeds start in 2002
const startingYear = 2002
currentYear := time.Now().Year()
if currentYear < startingYear {
panic("system date is in the past, cannot continue")
}
entries := (currentYear - startingYear) + 1
f := make([]cveFile, entries+2) // +recent +modified
version := c.version()
encoding := c.encoding()
compression := c.compression()
for i := 0; i < entries; i++ {
year := startingYear + i
suffix := strconv.Itoa(year)
f[i] = cveFile{
CVE: c,
MetaFile: filefmt(version, suffix, "meta", ""),
DataFile: filefmt(version, suffix, encoding, compression),
}
}
// recent
f[entries] = cveFile{
CVE: c,
MetaFile: filefmt(version, "recent", "meta", ""),
DataFile: filefmt(version, "recent", encoding, compression),
}
// modified
f[entries+1] = cveFile{
CVE: c,
MetaFile: filefmt(version, "modified", "meta", ""),
DataFile: filefmt(version, "modified", encoding, compression),
}
return f
}