github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/cmd/state/internal/cmdtree/use.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/use" 8 "github.com/ActiveState/cli/pkg/project" 9 ) 10 11 func newUseCommand(prime *primer.Values) *captain.Command { 12 params := &use.Params{ 13 Namespace: &project.Namespaced{AllowOmitOwner: true}, 14 } 15 16 cmd := captain.NewCommand( 17 "use", 18 "", 19 locale.Tl("use_description", "Use the given project as your default. This configures it globally in all your shells, and makes State Tool default to it if not other project was found."), 20 prime, 21 []*captain.Flag{}, 22 []*captain.Argument{ 23 { 24 Name: locale.T("arg_state_use_namespace"), 25 Description: locale.T("arg_state_use_namespace_description"), 26 Value: params.Namespace, 27 }, 28 }, 29 func(_ *captain.Command, _ []string) error { 30 return use.NewUse(prime).Run(params) 31 }, 32 ).SetGroup(EnvironmentUsageGroup).SetSupportsStructuredOutput() 33 return cmd 34 } 35 36 func newUseResetCommand(prime *primer.Values, globals *globalOptions) *captain.Command { 37 params := &use.ResetParams{} 38 39 return captain.NewCommand( 40 "reset", 41 "", 42 locale.Tl("reset_description", "Stop using your project runtime"), 43 prime, 44 []*captain.Flag{}, 45 []*captain.Argument{}, 46 func(_ *captain.Command, _ []string) error { 47 params.Force = globals.NonInteractive 48 return use.NewReset(prime).Run(params) 49 }, 50 ) 51 } 52 53 func newUseShowCommand(prime *primer.Values) *captain.Command { 54 cmd := captain.NewCommand( 55 "show", 56 "", 57 locale.Tl("use_show_description", "Show the project runtime you are using"), 58 prime, 59 []*captain.Flag{}, 60 []*captain.Argument{}, 61 func(_ *captain.Command, _ []string) error { 62 return use.NewShow(prime).Run() 63 }, 64 ).SetSupportsStructuredOutput() 65 return cmd 66 }