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(&params)
    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(&params)
    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:       &params.ID,
    79  			},
    80  		},
    81  		func(_ *captain.Command, _ []string) error {
    82  			return open.Run(params)
    83  		},
    84  	)
    85  }