[vuln] cmd/vulnreport: add lint

1 view
Skip to first unread message

Julie Qiu (Gerrit)

unread,
Dec 7, 2021, 11:59:36 AM12/7/21
to goph...@pubsubhelper.golang.org, golang-...@googlegroups.com, Gopher Robot, Jonathan Amsterdam, kokoro, golang-co...@googlegroups.com

Julie Qiu submitted this change.

View Change



3 is the latest approved patch-set.
The change was submitted with unreviewed changes in the following files:

```
The name of the file: cmd/vulnreport/main.go
Insertions: 3, Deletions: 2.

@@ -34,8 +34,8 @@
os.Exit(1)
}

- cmd := flag.Args()[0]
- filename := flag.Args()[1]
+ cmd := flag.Arg(0)
+ filename := flag.Arg(1)
switch cmd {
case "create":
if err := create(filename); err != nil {
@@ -46,6 +46,7 @@
log.Fatal(err)
}
default:
+ flag.Usage()
log.Fatalf("unsupported command: %q", cmd)
}
}
```

Approvals: Jonathan Amsterdam: Looks good to me, approved Julie Qiu: Trusted; Run TryBots Gopher Robot: TryBots succeeded
cmd/vulnreport: add lint

Functionality for linting a vulnerability report is moved to
cmd/vulnreport from cmd/linter.

Change-Id: I5ada6c66db10cd9711fe8c801a646e2df3fbd972
Reviewed-on: https://go-review.googlesource.com/c/vuln/+/369479
Trust: Julie Qiu <ju...@golang.org>
Run-TryBot: Julie Qiu <ju...@golang.org>
Reviewed-by: Jonathan Amsterdam <j...@google.com>
TryBot-Result: Gopher Robot <go...@golang.org>
---
D cmd/linter/main.go
M cmd/vulnreport/main.go
2 files changed, 44 insertions(+), 44 deletions(-)

diff --git a/cmd/linter/main.go b/cmd/linter/main.go
deleted file mode 100644
index 2c70d70..0000000
--- a/cmd/linter/main.go
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Command linter provides a tool for linting individual reports.
-package main
-
-import (
- "fmt"
- "io/ioutil"
- "os"
-
- "golang.org/x/vuln/internal/report"
- "gopkg.in/yaml.v2"
-)
-
-func main() {
- if len(os.Args) != 2 {
- fmt.Fprintln(os.Stderr, "only expect a single argument")
- os.Exit(1)
- }
-
- content, err := ioutil.ReadFile(os.Args[1])
- if err != nil {
- fmt.Fprintf(os.Stderr, "unable to read %q: %s\n", os.Args[1], err)
- os.Exit(1)
- }
-
- var vuln report.Report
- err = yaml.UnmarshalStrict(content, &vuln)
- if err != nil {
- fmt.Fprintf(os.Stderr, "unable to parse %q: %s\n", os.Args[1], err)
- os.Exit(1)
- }
-
- if lints := vuln.Lint(); len(lints) > 0 {
- fmt.Fprintf(os.Stderr, "invalid vulnerability file %q:\n", os.Args[1])
- for _, lint := range lints {
- fmt.Fprintf(os.Stderr, "\t%s\n", lint)
- }
- os.Exit(1)
- }
-}
diff --git a/cmd/vulnreport/main.go b/cmd/vulnreport/main.go
index b4470ba..e9bca08 100644
--- a/cmd/vulnreport/main.go
+++ b/cmd/vulnreport/main.go
@@ -9,10 +9,15 @@
import (
"flag"
"fmt"
+ "io/ioutil"
"log"
+ "strings"
+
"os"

"golang.org/x/vuln/internal/derrors"
+ "golang.org/x/vuln/internal/report"
+ "gopkg.in/yaml.v2"
)

func main() {
@@ -37,7 +42,9 @@
log.Fatal(err)
}
case "lint":
- log.Fatalf("not implemented")
+ if err := lint(filename); err != nil {
+ log.Fatal(err)
+ }
default:
flag.Usage()
log.Fatalf("unsupported command: %q", cmd)
@@ -66,3 +73,22 @@
-
`), 0644)
}
+
+func lint(filename string) (err error) {
+ defer derrors.Wrap(&err, "lint(%q)", filename)
+ content, err := ioutil.ReadFile(filename)
+ if err != nil {
+ return fmt.Errorf("ioutil.ReadFile: %v", err)
+ }
+
+ var vuln report.Report
+ err = yaml.UnmarshalStrict(content, &vuln)
+ if err != nil {
+ return fmt.Errorf("yaml.UnmarshalStrict: %v", err)
+ }
+
+ if lints := vuln.Lint(); len(lints) > 0 {
+ return fmt.Errorf("vuln.Lint returned errors:\n\t %s", strings.Join(lints, "\n\t"))
+ }
+ return nil
+}

To view, visit change 369479. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: vuln
Gerrit-Branch: master
Gerrit-Change-Id: I5ada6c66db10cd9711fe8c801a646e2df3fbd972
Gerrit-Change-Number: 369479
Gerrit-PatchSet: 5
Gerrit-Owner: Julie Qiu <ju...@golang.org>
Gerrit-Reviewer: Gopher Robot <go...@golang.org>
Gerrit-Reviewer: Jonathan Amsterdam <j...@google.com>
Gerrit-Reviewer: Julie Qiu <ju...@golang.org>
Gerrit-CC: kokoro <noreply...@google.com>
Gerrit-MessageType: merged
Reply all
Reply to author
Forward
0 new messages