cmd/dbdiff: support byID directory
Change-Id: If1573f8b86adeb58be56c787b5e79607e146460a
Reviewed-on: https://go-review.googlesource.com/c/vulndb/+/354390
Trust: Roland Shoemaker <roland@golang.org>
Run-TryBot: Roland Shoemaker <roland@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Julie Qiu <julie@golang.org>
diff --git a/cmd/dbdiff/main.go b/cmd/dbdiff/main.go
index 6a39aef..759522d 100644
--- a/cmd/dbdiff/main.go
+++ b/cmd/dbdiff/main.go
@@ -29,7 +29,9 @@
for _, f := range dir {
fpath := filepath.Join(path, f.Name())
if f.IsDir() {
- loadDir(fpath)
+ if err := loadDir(fpath); err != nil {
+ return err
+ }
continue
}
content, err := ioutil.ReadFile(fpath)
@@ -40,12 +42,19 @@
if err := json.Unmarshal(content, &index); err != nil {
return fmt.Errorf("unable to parse %q: %s", fpath, err)
}
+ } else if path == filepath.Join(dbPath, "byID") {
+ var entry osv.Entry
+ if err := json.Unmarshal(content, &entry); err != nil {
+ return fmt.Errorf("unable to parse %q: %s", fpath, err)
+ }
+ fname := strings.TrimPrefix(fpath, dbPath)
+ dbMap[fname] = []osv.Entry{entry}
} else {
var entries []osv.Entry
if err := json.Unmarshal(content, &entries); err != nil {
return fmt.Errorf("unable to parse %q: %s", fpath, err)
}
- module := strings.TrimSuffix(strings.TrimPrefix(fpath, dbPath), filepath.Ext(fpath))
+ module := strings.TrimPrefix(fpath, dbPath)
dbMap[module] = entries
}
}