github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/cmd/state/internal/cmdtree/secrets.go (about)

     1  package cmdtree
     2  
     3  import (
     4  	"strings"
     5  
     6  	"github.com/ActiveState/cli/internal/captain"
     7  	"github.com/ActiveState/cli/internal/locale"
     8  	"github.com/ActiveState/cli/internal/primer"
     9  	"github.com/ActiveState/cli/internal/runners/secrets"
    10  	secretsapi "github.com/ActiveState/cli/pkg/platform/api/secrets"
    11  )
    12  
    13  func newSecretsCommand(secretsClient *secretsapi.Client, prime *primer.Values) *captain.Command {
    14  	runner := secrets.NewList(secretsClient, prime)
    15  
    16  	params := secrets.ListRunParams{}
    17  
    18  	ccmd := captain.NewCommand(
    19  		"secrets",
    20  		locale.Tl("secrets_title", "Secrets"),
    21  		locale.T("secrets_cmd_description"),
    22  		prime,
    23  		[]*captain.Flag{
    24  			{
    25  				Name:        "filter-usedby",
    26  				Description: locale.T("secrets_flag_filter"),
    27  				Value:       &params.Filter,
    28  			},
    29  		},
    30  		nil,
    31  		func(_ *captain.Command, args []string) error {
    32  			if len(args) > 0 && strings.HasPrefix(args[0], "var") {
    33  				prime.Output().Error(locale.T("secrets_warn_deprecated_var"))
    34  			}
    35  
    36  			return runner.Run(params)
    37  		},
    38  	)
    39  
    40  	ccmd.SetGroup(PlatformGroup)
    41  	ccmd.SetAliases("variables", "vars")
    42  	ccmd.SetSupportsStructuredOutput()
    43  	ccmd.SetUnstable(true)
    44  
    45  	return ccmd
    46  }
    47  
    48  func newSecretsGetCommand(prime *primer.Values) *captain.Command {
    49  	runner := secrets.NewGet(prime)
    50  
    51  	params := secrets.GetRunParams{}
    52  
    53  	return captain.NewCommand(
    54  		"get",
    55  		locale.Tl("secrets_get_title", "Getting Secret"),
    56  		locale.T("secrets_get_cmd_description"),
    57  		prime,
    58  		nil,
    59  		[]*captain.Argument{
    60  			{
    61  				Name:        locale.T("secrets_get_arg_name_name"),
    62  				Description: locale.T("secrets_get_arg_name_description"),
    63  				Value:       &params.Name,
    64  				Required:    true,
    65  			},
    66  		},
    67  		func(_ *captain.Command, _ []string) error {
    68  			return runner.Run(params)
    69  		},
    70  	).SetSupportsStructuredOutput()
    71  }
    72  
    73  func newSecretsSetCommand(prime *primer.Values) *captain.Command {
    74  	runner := secrets.NewSet(prime)
    75  
    76  	params := secrets.SetRunParams{}
    77  
    78  	return captain.NewCommand(
    79  		"set",
    80  		locale.Tl("secrets_set_title", "Setting Secret"),
    81  		locale.T("secrets_set_cmd_description"),
    82  		prime,
    83  		nil,
    84  		[]*captain.Argument{
    85  			{
    86  				Name:        locale.T("secrets_set_arg_name_name"),
    87  				Description: locale.T("secrets_set_arg_name_description"),
    88  				Value:       &params.Name,
    89  				Required:    true,
    90  			},
    91  			{
    92  				Name:        locale.T("secrets_set_arg_value_name"),
    93  				Description: locale.T("secrets_set_arg_value_description"),
    94  				Value:       &params.Value,
    95  				Required:    true,
    96  			},
    97  		},
    98  		func(_ *captain.Command, _ []string) error {
    99  			return runner.Run(params)
   100  		},
   101  	)
   102  }
   103  
   104  func newSecretsSyncCommand(secretsClient *secretsapi.Client, prime *primer.Values) *captain.Command {
   105  	runner := secrets.NewSync(secretsClient, prime)
   106  
   107  	return captain.NewCommand(
   108  		"sync",
   109  		locale.Tl("secrets_sync_title", "Synchronizing Secrets"),
   110  		locale.T("secrets_sync_cmd_description"),
   111  		prime,
   112  		nil,
   113  		nil,
   114  		func(_ *captain.Command, _ []string) error {
   115  			return runner.Run()
   116  		},
   117  	)
   118  }