@@ -91,13 +91,25 @@ func worker(wg *sync.WaitGroup, jobs <-chan string, outDir string, cnas []string
9191 continue
9292 }
9393
94- if slices .Contains (cnas , cve .Metadata .AssignerShortName ) && cve .Metadata .State == "PUBLISHED" {
95- logger .Info ("Processing " + string (cve .Metadata .CVEID ), slog .String ("cve" , string (cve .Metadata .CVEID )))
94+ if ! slices .Contains (cnas , cve .Metadata .AssignerShortName ) || cve .Metadata .State != "PUBLISHED" {
95+ continue
96+ }
97+ cveID := cve .Metadata .CVEID
98+ logger .Info ("Processing " + string (cveID ), slog .String ("cve" , string (cveID )))
9699
97- if err = cvelist2osv .ConvertAndExportCVEToOSV ( cve , outDir ); err != nil {
98- logger . Warn ( "Failed to generate an OSV record for " + string ( cve . Metadata . CVEID ),
99- slog . String ( "cve" , string ( cve . Metadata . CVEID )), slog . Any ( "err" , err ))
100- }
100+ osvFile , errCVE : = cvelist2osv .CreateOSVFile ( cveID , outDir )
101+ metricsFile , errMetrics := cvelist2osv . CreateMetricsFile ( cveID , outDir )
102+ if errCVE != nil || errMetrics != nil {
103+ logger . Fatal ( "File failed to be created for CVE" , slog . String ( "cve" , string ( cveID )))
101104 }
105+ // Perform the conversion and export the results.
106+ if err = cvelist2osv .ConvertAndExportCVEToOSV (cve , osvFile , metricsFile ); err != nil {
107+ logger .Warn ("Failed to generate an OSV record" , slog .String ("cve" , string (cveID )), slog .Any ("err" , err ))
108+ } else {
109+ logger .Info ("Generated OSV record for " + string (cveID ), slog .String ("cve" , string (cveID )), slog .String ("cna" , cve .Metadata .AssignerShortName ))
110+ }
111+
112+ metricsFile .Close ()
113+ osvFile .Close ()
102114 }
103115}
0 commit comments