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: ¶ms.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: ¶ms.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: ¶ms.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: ¶ms.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 }