Skip to content

Commit 10819e1

Browse files
tatianabTatiana Bradley
authored andcommitted
cmd/cve: support running cve publish on multiple arguments
The "cve publish" command can now be run on space-separated arguments or regular expressions (e.g. cve publish data/cve/v5/*.json) Change-Id: Ia7eb06218bdb090161f78a0aeaea4f274c66b3d7 Reviewed-on: https://go-review.googlesource.com/c/vulndb/+/459596 Reviewed-by: Julie Qiu <[email protected]> Reviewed-by: Tatiana Bradley <[email protected]> Run-TryBot: Tatiana Bradley <[email protected]> TryBot-Result: Gopher Robot <[email protected]>
1 parent 49c7d2e commit 10819e1

File tree

1 file changed

+16
-11
lines changed

1 file changed

+16
-11
lines changed

cmd/cve/main.go

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -115,15 +115,21 @@ func main() {
115115
log.Fatalf("cve record: could not retrieve CVE record due to error:\n %v", err)
116116
}
117117
case "publish":
118-
filename, err := argToFilename(flag.Arg(1))
119-
if err != nil {
120-
logFatalUsageErr("cve publish", err)
121-
}
122-
if !strings.HasSuffix(filename, ".json") && !strings.HasSuffix(filename, ".yaml") {
123-
logFatalUsageErr("cve publish", errors.New("filename must end in '.json' or '.yaml'"))
118+
args := flag.Args()[1:]
119+
if len(args) == 0 {
120+
logFatalUsageErr("cve publish", errors.New("must provide filename or issue ID"))
124121
}
125-
if err := publish(c, filename); err != nil {
126-
log.Fatalf("cve publish: could not publish CVE record due to error:\n %v", err)
122+
for _, arg := range args {
123+
filename, err := argToFilename(arg)
124+
if err != nil {
125+
logFatalUsageErr("cve publish", err)
126+
}
127+
if !strings.HasSuffix(filename, ".json") && !strings.HasSuffix(filename, ".yaml") {
128+
logFatalUsageErr("cve publish", errors.New("filename must end in '.json' or '.yaml'"))
129+
}
130+
if err := publish(c, filename); err != nil {
131+
log.Printf("cve publish: could not publish CVE record due to error:\n %v", err)
132+
}
127133
}
128134
case "org":
129135
if err := lookupOrg(c); err != nil {
@@ -150,9 +156,8 @@ func main() {
150156
}
151157

152158
func logFatalUsageErr(context string, err error) {
153-
log.Printf("%s: %s\n\n", context, err)
154159
flag.Usage()
155-
os.Exit(1)
160+
log.Fatalf("%s: %s\n", context, err)
156161
}
157162

158163
func getCurrentYear() int {
@@ -320,7 +325,7 @@ func publish(c *cveclient.Client, filename string) (err error) {
320325
if diff := cmp.Diff(existing.Containers, *toPublish); diff != "" {
321326
fmt.Printf("publish would update record for %s (-existing, +new):\n%s\n", cveID, diff)
322327
} else {
323-
fmt.Println("updating record would have no effect, exiting")
328+
fmt.Printf("updating record for %s would have no effect, skipping\n", cveID)
324329
return nil
325330
}
326331
publish = c.UpdateRecord

0 commit comments

Comments
 (0)