github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/cmd/state/internal/cmdtree/switch.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/swtch" 8 ) 9 10 func newSwitchCommand(prime *primer.Values) *captain.Command { 11 runner := swtch.New(prime) 12 13 params := swtch.SwitchParams{} 14 15 cmd := captain.NewCommand( 16 "switch", 17 locale.Tl("switch_title", "Switching"), 18 locale.Tl("switch_description", "Switch to a branch, commit, or tag"), 19 prime, 20 []*captain.Flag{}, 21 []*captain.Argument{ 22 { 23 Name: locale.Tl("switch_arg_identifier", "identifier"), 24 Description: locale.Tl("switch_arg_identifier_description", "The commit or branch to switch to"), 25 Value: ¶ms.Identifier, 26 Required: true, 27 }, 28 }, 29 func(_ *captain.Command, _ []string) error { 30 return runner.Run(params) 31 }) 32 33 cmd.SetGroup(EnvironmentSetupGroup) 34 cmd.SetSupportsStructuredOutput() 35 return cmd 36 }