in vulndb/custom.go [196:244]
func (o CustomDataExporter) JSON(ctx context.Context, w io.Writer, indent string) error {
q := sqlutil.Select(
"cve_id",
"cve_json",
).From(
"custom_data",
).Where(
o.condition(),
)
query, args := q.String(), q.QueryArgs()
if debug.V(1) {
flog.Infof("running: %q / %#v", query, args)
}
rows, err := o.DB.QueryContext(ctx, query, args...)
if err != nil {
return errors.Wrap(err, "cannot query vendor data")
}
defer rows.Close()
record := struct {
CVE string
JSON []byte
}{}
f := &cveFile{}
for rows.Next() {
v := record
err = rows.Scan(sqlutil.NewRecordType(&v).Values()...)
if err != nil {
return errors.Wrap(err, "cannot scan vendor data")
}
err = f.Add(v.CVE, v.JSON)
if err != nil {
return err
}
}
if indent == "" {
return f.EncodeJSON(w)
}
const prefix = ""
return f.EncodeIndentedJSON(w, prefix, indent)
}