зеркало из https://github.com/golang/vulndb.git
45 строки
1.1 KiB
Go
45 строки
1.1 KiB
Go
// 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 gendb provides a tool for converting YAML reports into JSON
|
|
// Go vulnerability databases.
|
|
package main
|
|
|
|
import (
|
|
"context"
|
|
"flag"
|
|
"log"
|
|
|
|
db "golang.org/x/vulndb/internal/database"
|
|
"golang.org/x/vulndb/internal/gitrepo"
|
|
)
|
|
|
|
var (
|
|
repoDir = flag.String("repo", ".", "Directory containing vulndb repo")
|
|
jsonDir = flag.String("out", "out", "Directory to write JSON database to")
|
|
zipFile = flag.String("zip", "", "if provided, file to write zipped database to (for v1 database only)")
|
|
indent = flag.Bool("indent", false, "Indent JSON for debugging")
|
|
)
|
|
|
|
func main() {
|
|
flag.Parse()
|
|
ctx := context.Background()
|
|
repo, err := gitrepo.CloneOrOpen(ctx, *repoDir)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
d, err := db.FromRepo(ctx, repo)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
if err := d.Write(*jsonDir); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
if *zipFile != "" {
|
|
if err := d.WriteZip(*zipFile); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|
|
}
|