github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/cmd/state/internal/cmdtree/fork.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/fork"
     8  )
     9  
    10  func newForkCommand(prime *primer.Values) *captain.Command {
    11  	runner := fork.New(prime)
    12  	params := &fork.Params{}
    13  
    14  	return captain.NewCommand(
    15  		"fork",
    16  		locale.Tl("fork_title", "Forking Project"),
    17  		locale.Tl("fork_description", "Fork an existing ActiveState Platform project"),
    18  		prime,
    19  		[]*captain.Flag{
    20  			{
    21  				Name:        "org",
    22  				Description: locale.Tl("fork_flag_org", "The organization to fork the project to"),
    23  				Value:       &params.Organization,
    24  			},
    25  			{
    26  				Name:        "name",
    27  				Description: locale.Tl("fork_flag_name", "The name of the new project to be created"),
    28  				Value:       &params.Name,
    29  			},
    30  			{
    31  				Name:        "private",
    32  				Description: locale.Tl("fork_flag_private", "Denotes if the forked project will be private"),
    33  				Value:       &params.Private,
    34  			},
    35  		},
    36  		[]*captain.Argument{
    37  			{
    38  				Name:        locale.Tl("fork_arg_namespace", "org/project"),
    39  				Description: locale.Tl("fork_arg_namespace_desc", "The namespace of the project to be forked"),
    40  				Required:    true,
    41  				Value:       &params.Namespace,
    42  			},
    43  		},
    44  		func(cmd *captain.Command, args []string) error {
    45  			return runner.Run(params)
    46  		}).SetGroup(VCSGroup).SetSupportsStructuredOutput()
    47  }