github.com/devseccon/trivy@v0.47.1-0.20231123133102-bd902a0bd996/cmd/trivy/main.go (about) 1 package main 2 3 import ( 4 "context" 5 "os" 6 7 "golang.org/x/xerrors" 8 9 "github.com/devseccon/trivy/pkg/commands" 10 "github.com/devseccon/trivy/pkg/log" 11 "github.com/devseccon/trivy/pkg/plugin" 12 13 _ "modernc.org/sqlite" // sqlite driver for RPM DB and Java DB 14 ) 15 16 func main() { 17 if err := run(); err != nil { 18 log.Fatal(err) 19 } 20 } 21 22 func run() error { 23 // Trivy behaves as the specified plugin. 24 if runAsPlugin := os.Getenv("TRIVY_RUN_AS_PLUGIN"); runAsPlugin != "" { 25 if !plugin.IsPredefined(runAsPlugin) { 26 return xerrors.Errorf("unknown plugin: %s", runAsPlugin) 27 } 28 if err := plugin.RunWithArgs(context.Background(), runAsPlugin, os.Args[1:]); err != nil { 29 return xerrors.Errorf("plugin error: %w", err) 30 } 31 return nil 32 } 33 34 app := commands.NewApp() 35 if err := app.Execute(); err != nil { 36 return err 37 } 38 return nil 39 }