github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/cmd/state/internal/cmdtree/exec.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/exec" 8 ) 9 10 func newExecCommand(prime *primer.Values, args ...string) *captain.Command { 11 runner := exec.New(prime) 12 13 params := exec.NewParams() 14 15 cmd := captain.NewCommand( 16 "exec", 17 "", 18 locale.T("exec_description"), 19 prime, 20 []*captain.Flag{ 21 { 22 Name: "path", 23 Description: locale.Tl("flag_state_exec_path_description", "Path to the project you are using"), 24 Value: ¶ms.Path, 25 }, 26 }, 27 []*captain.Argument{}, 28 func(ccmd *captain.Command, args []string) error { 29 if len(args) > 0 && (args[0] == "-h" || args[0] == "--help") { 30 prime.Output().Print(ccmd.UsageText()) 31 return nil 32 } else if len(args) > 0 && (args[0] == "-v" || args[0] == "--verbose" || args[0] == "--") { 33 if len(args) > 1 { 34 args = args[1:] 35 } else { 36 args = []string{} 37 } 38 } 39 40 return runner.Run(params, args...) 41 }, 42 ) 43 cmd.SetSkipChecks(true) 44 cmd.SetDeferAnalytics(true) 45 46 cmd.SetGroup(EnvironmentUsageGroup) 47 cmd.SetHasVariableArguments() 48 49 return cmd 50 }