github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/cmd/state/internal/cmdtree/invite.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/invite"
     8  )
     9  
    10  func newInviteCommand(prime *primer.Values) *captain.Command {
    11  	inviteRunner := invite.New(prime)
    12  
    13  	params := invite.Params{}
    14  
    15  	cmd := captain.NewCommand(
    16  		"invite",
    17  		locale.Tl("invite_title", "Inviting New Members"),
    18  		locale.Tl("invite_description", "Invite new members to an organization"),
    19  		prime,
    20  		[]*captain.Flag{
    21  			{
    22  				Name:        "organization",
    23  				Description: locale.Tl("invite_flag_organization_description", "Organization to invite to. If not set, invite to current project's organization"),
    24  				Value:       &params.Org,
    25  			},
    26  			{
    27  				Name:        "role",
    28  				Description: locale.Tl("invite_flag_role_description", "Set user role to 'member' or 'owner'. If not set, prompt for the role"),
    29  				Value:       &params.Role,
    30  			},
    31  		},
    32  		[]*captain.Argument{
    33  			{
    34  				Name:        "email1[,email2,..]",
    35  				Description: locale.Tl("invite_arg_emails", "Email addresses to send the invitations to"),
    36  				Required:    true,
    37  				Value:       &params.EmailList,
    38  			},
    39  		},
    40  		func(ccmd *captain.Command, args []string) error {
    41  			return inviteRunner.Run(&params, args)
    42  		},
    43  	)
    44  	cmd.SetGroup(PlatformGroup)
    45  	cmd.SetUnstable(true)
    46  	cmd.SetHasVariableArguments()
    47  
    48  	return cmd
    49  }