Initialize module and dependencies
This commit is contained in:
65
vendor/golang.org/x/vuln/internal/govulncheck/handler.go
generated
vendored
Normal file
65
vendor/golang.org/x/vuln/internal/govulncheck/handler.go
generated
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
// Copyright 2023 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.
|
||||
|
||||
package govulncheck
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io"
|
||||
|
||||
"golang.org/x/vuln/internal/osv"
|
||||
)
|
||||
|
||||
// Handler handles messages to be presented in a vulnerability scan output
|
||||
// stream.
|
||||
type Handler interface {
|
||||
// Config communicates introductory message to the user.
|
||||
Config(config *Config) error
|
||||
|
||||
// SBOM shows information about what govulncheck is scanning.
|
||||
SBOM(sbom *SBOM) error
|
||||
|
||||
// Progress is called to display a progress message.
|
||||
Progress(progress *Progress) error
|
||||
|
||||
// OSV is invoked for each osv Entry in the stream.
|
||||
OSV(entry *osv.Entry) error
|
||||
|
||||
// Finding is called for each vulnerability finding in the stream.
|
||||
Finding(finding *Finding) error
|
||||
}
|
||||
|
||||
// HandleJSON reads the json from the supplied stream and hands the decoded
|
||||
// output to the handler.
|
||||
func HandleJSON(from io.Reader, to Handler) error {
|
||||
dec := json.NewDecoder(from)
|
||||
for dec.More() {
|
||||
msg := Message{}
|
||||
// decode the next message in the stream
|
||||
if err := dec.Decode(&msg); err != nil {
|
||||
return err
|
||||
}
|
||||
// dispatch the message
|
||||
var err error
|
||||
if msg.Config != nil {
|
||||
err = to.Config(msg.Config)
|
||||
}
|
||||
if msg.Progress != nil {
|
||||
err = to.Progress(msg.Progress)
|
||||
}
|
||||
if msg.SBOM != nil {
|
||||
err = to.SBOM(msg.SBOM)
|
||||
}
|
||||
if msg.OSV != nil {
|
||||
err = to.OSV(msg.OSV)
|
||||
}
|
||||
if msg.Finding != nil {
|
||||
err = to.Finding(msg.Finding)
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user