github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/cmd/state/internal/cmdtree/cve.go (about) 1 package cmdtree 2 3 import ( 4 "github.com/ActiveState/cli/internal/captain" 5 "github.com/ActiveState/cli/internal/locale" 6 "github.com/ActiveState/cli/internal/primer" 7 "github.com/ActiveState/cli/internal/runners/cve" 8 "github.com/ActiveState/cli/pkg/project" 9 ) 10 11 func newCveCommand(prime *primer.Values) *captain.Command { 12 runner := cve.NewCve(prime) 13 params := cve.Params{Namespace: &project.Namespaced{}} 14 15 cmd := captain.NewCommand( 16 "security", 17 locale.T("cve_title"), 18 locale.T("cve_description"), 19 prime, 20 []*captain.Flag{}, 21 []*captain.Argument{ 22 { 23 Name: locale.T("cve_namespace_arg"), 24 Description: locale.T("cve_namespace_arg_description"), 25 Value: params.Namespace, 26 }, 27 }, func(_ *captain.Command, _ []string) error { 28 return runner.Run(¶ms) 29 }, 30 ) 31 cmd.SetGroup(PlatformGroup) 32 cmd.SetAliases("cve") 33 cmd.SetSupportsStructuredOutput() 34 cmd.SetUnstable(true) 35 return cmd 36 } 37 38 // newReportCommand is a hidden, legacy alias of the parent command 39 func newReportCommand(prime *primer.Values) *captain.Command { 40 report := cve.NewCve(prime) 41 params := cve.Params{Namespace: &project.Namespaced{}} 42 43 cmd := captain.NewCommand( 44 "report", 45 locale.T("cve_title"), 46 locale.T("cve_description"), 47 prime, 48 []*captain.Flag{}, 49 []*captain.Argument{ 50 { 51 Name: locale.T("cve_namespace_arg"), 52 Description: locale.T("cve_namespace_arg_description"), 53 Value: params.Namespace, 54 }, 55 }, func(_ *captain.Command, _ []string) error { 56 return report.Run(¶ms) 57 }, 58 ) 59 cmd.SetSupportsStructuredOutput() 60 cmd.SetHidden(true) 61 return cmd 62 } 63 64 func newOpenCommand(prime *primer.Values) *captain.Command { 65 open := cve.NewOpen(prime) 66 params := cve.OpenParams{} 67 68 return captain.NewCommand( 69 "open", 70 locale.Tl("cve_open_title", "Opening Vulnerability Details Page"), 71 locale.Tl("cve_open_cmd_description", "Open the given vulnerability details in your browser"), 72 prime, 73 []*captain.Flag{}, 74 []*captain.Argument{ 75 { 76 Name: locale.Tl("cve_open_id_arg", "ID"), 77 Description: locale.Tl("cve_open_id_arg_description", "The vulnerablility to open in your browser"), 78 Value: ¶ms.ID, 79 }, 80 }, 81 func(_ *captain.Command, _ []string) error { 82 return open.Run(params) 83 }, 84 ) 85 }