github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/cmd/state/internal/cmdtree/branch.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/branch"
     8  	"github.com/ActiveState/cli/internal/runners/swtch"
     9  )
    10  
    11  func newBranchCommand(prime *primer.Values) *captain.Command {
    12  	runner := branch.NewList(prime)
    13  
    14  	return captain.NewCommand(
    15  		"branch",
    16  		locale.Tl("branch_title", "Listing branches"),
    17  		locale.Tl("branch_description", "Manage your project's branches"),
    18  		prime,
    19  		[]*captain.Flag{},
    20  		[]*captain.Argument{},
    21  		func(_ *captain.Command, _ []string) error {
    22  			return runner.Run()
    23  		}).SetGroup(PlatformGroup).SetSupportsStructuredOutput().SetUnstable(true)
    24  }
    25  
    26  func newBranchSwitchCommand(prime *primer.Values) *captain.Command {
    27  	runner := swtch.New(prime)
    28  
    29  	params := swtch.SwitchParams{}
    30  
    31  	cmd := captain.NewCommand(
    32  		"switch",
    33  		locale.Tl("switch_title", "Switching branches"),
    34  		locale.Tl("switch_description", "Switch to the given branch name"),
    35  		prime,
    36  		[]*captain.Flag{},
    37  		[]*captain.Argument{
    38  			{
    39  				Name:        locale.Tl("switch_arg_identifier", "identifier"),
    40  				Description: locale.Tl("switch_arg_identifier_description", "The commit or branch to switch to"),
    41  				Value:       &params.Identifier,
    42  				Required:    true,
    43  			},
    44  		},
    45  		func(_ *captain.Command, _ []string) error {
    46  			return runner.Run(params)
    47  		})
    48  	cmd.SetSupportsStructuredOutput()
    49  	// We set this command to hidden for backwards compatibility as we cannot
    50  	// alias `state switch` to `state branch switch`
    51  	cmd.SetHidden(true)
    52  
    53  	return cmd
    54  }