diff --git a/.gitignore b/.gitignore index a7e0d979..d9aede47 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -vuls .vscode *.txt *.json diff --git a/cmd/vuls/main.go b/cmd/vuls/main.go new file mode 100644 index 00000000..c11fbcfa --- /dev/null +++ b/cmd/vuls/main.go @@ -0,0 +1,38 @@ +package main + +import ( + "flag" + "fmt" + "os" + + "context" + + "github.com/future-architect/vuls/config" + commands "github.com/future-architect/vuls/subcmds" + "github.com/google/subcommands" +) + +func main() { + subcommands.Register(subcommands.HelpCommand(), "") + subcommands.Register(subcommands.FlagsCommand(), "") + subcommands.Register(subcommands.CommandsCommand(), "") + subcommands.Register(&commands.DiscoverCmd{}, "discover") + subcommands.Register(&commands.TuiCmd{}, "tui") + subcommands.Register(&commands.ScanCmd{}, "scan") + subcommands.Register(&commands.HistoryCmd{}, "history") + subcommands.Register(&commands.ReportCmd{}, "report") + subcommands.Register(&commands.ConfigtestCmd{}, "configtest") + subcommands.Register(&commands.ServerCmd{}, "server") + + var v = flag.Bool("v", false, "Show version") + + flag.Parse() + + if *v { + fmt.Printf("vuls %s %s\n", config.Version, config.Revision) + os.Exit(int(subcommands.ExitSuccess)) + } + + ctx := context.Background() + os.Exit(int(subcommands.Execute(ctx))) +}