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  }