mirror of
https://github.com/aquasecurity/trivy.git
synced 2025-12-22 23:26:39 -08:00
feat(cli): add javadb metadata to version info (#3835)
This commit is contained in:
@@ -6,6 +6,7 @@ import (
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@@ -15,6 +16,7 @@ import (
|
||||
|
||||
awsScanner "github.com/aquasecurity/defsec/pkg/scanners/cloud/aws"
|
||||
"github.com/aquasecurity/trivy-db/pkg/metadata"
|
||||
javadb "github.com/aquasecurity/trivy-java-db/pkg/db"
|
||||
awscommands "github.com/aquasecurity/trivy/pkg/cloud/aws/commands"
|
||||
"github.com/aquasecurity/trivy/pkg/commands/artifact"
|
||||
"github.com/aquasecurity/trivy/pkg/commands/server"
|
||||
@@ -32,6 +34,7 @@ import (
|
||||
type VersionInfo struct {
|
||||
Version string `json:",omitempty"`
|
||||
VulnerabilityDB *metadata.Metadata `json:",omitempty"`
|
||||
JavaDB *metadata.Metadata `json:",omitempty"`
|
||||
PolicyBundle *policy.Metadata `json:",omitempty"`
|
||||
}
|
||||
|
||||
@@ -1073,6 +1076,7 @@ func NewVersionCommand(globalFlags *flag.GlobalFlagGroup) *cobra.Command {
|
||||
|
||||
func showVersion(cacheDir, outputFormat, version string, outputWriter io.Writer) {
|
||||
var dbMeta *metadata.Metadata
|
||||
var javadbMeta *metadata.Metadata
|
||||
|
||||
mc := metadata.NewClient(cacheDir)
|
||||
meta, _ := mc.Get() // nolint: errcheck
|
||||
@@ -1085,6 +1089,17 @@ func showVersion(cacheDir, outputFormat, version string, outputWriter io.Writer)
|
||||
}
|
||||
}
|
||||
|
||||
mcJava := javadb.NewMetadata(filepath.Join(cacheDir, "java-db"))
|
||||
metaJava, _ := mcJava.Get() // nolint: errcheck
|
||||
if !metaJava.UpdatedAt.IsZero() && !metaJava.NextUpdate.IsZero() && metaJava.Version != 0 {
|
||||
javadbMeta = &metadata.Metadata{
|
||||
Version: metaJava.Version,
|
||||
NextUpdate: metaJava.NextUpdate.UTC(),
|
||||
UpdatedAt: metaJava.UpdatedAt.UTC(),
|
||||
DownloadedAt: metaJava.DownloadedAt.UTC(),
|
||||
}
|
||||
}
|
||||
|
||||
var pbMeta *policy.Metadata
|
||||
pc, err := policy.NewClient(cacheDir, false)
|
||||
if pc != nil && err == nil {
|
||||
@@ -1096,6 +1111,7 @@ func showVersion(cacheDir, outputFormat, version string, outputWriter io.Writer)
|
||||
b, _ := json.Marshal(VersionInfo{
|
||||
Version: version,
|
||||
VulnerabilityDB: dbMeta,
|
||||
JavaDB: javadbMeta,
|
||||
PolicyBundle: pbMeta,
|
||||
})
|
||||
fmt.Fprintln(outputWriter, string(b))
|
||||
@@ -1110,6 +1126,15 @@ func showVersion(cacheDir, outputFormat, version string, outputWriter io.Writer)
|
||||
`, dbMeta.Version, dbMeta.UpdatedAt.UTC(), dbMeta.NextUpdate.UTC(), dbMeta.DownloadedAt.UTC())
|
||||
}
|
||||
|
||||
if javadbMeta != nil {
|
||||
output += fmt.Sprintf(`Java DB:
|
||||
Version: %d
|
||||
UpdatedAt: %s
|
||||
NextUpdate: %s
|
||||
DownloadedAt: %s
|
||||
`, javadbMeta.Version, javadbMeta.UpdatedAt.UTC(), javadbMeta.NextUpdate.UTC(), javadbMeta.DownloadedAt.UTC())
|
||||
}
|
||||
|
||||
if pbMeta != nil {
|
||||
output += fmt.Sprintf(`Policy Bundle:
|
||||
Digest: %s
|
||||
|
||||
Reference in New Issue
Block a user