code.cloudfoundry.org/cli@v7.1.0+incompatible/command/v7/create_app_command.go (about)

     1  package v7
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccerror"
     5  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccv3/constant"
     6  	"code.cloudfoundry.org/cli/command/flag"
     7  	"code.cloudfoundry.org/cli/resources"
     8  )
     9  
    10  type CreateAppCommand struct {
    11  	BaseCommand
    12  
    13  	RequiredArgs    flag.AppName `positional-args:"yes"`
    14  	AppType         flag.AppType `long:"app-type" choice:"buildpack" choice:"docker" description:"App lifecycle type to stage and run the app" default:"buildpack"`
    15  	usage           interface{}  `usage:"CF_NAME create-app APP_NAME [--app-type (buildpack | docker)]"`
    16  	relatedCommands interface{}  `related_commands:"app, apps, push"`
    17  }
    18  
    19  func (cmd CreateAppCommand) Execute(args []string) error {
    20  	err := cmd.SharedActor.CheckTarget(true, true)
    21  	if err != nil {
    22  		return err
    23  	}
    24  
    25  	user, err := cmd.Config.CurrentUser()
    26  	if err != nil {
    27  		return err
    28  	}
    29  
    30  	cmd.UI.DisplayTextWithFlavor("Creating app {{.AppName}} in org {{.CurrentOrg}} / space {{.CurrentSpace}} as {{.CurrentUser}}...", map[string]interface{}{
    31  		"AppName":      cmd.RequiredArgs.AppName,
    32  		"CurrentSpace": cmd.Config.TargetedSpace().Name,
    33  		"CurrentOrg":   cmd.Config.TargetedOrganization().Name,
    34  		"CurrentUser":  user.Name,
    35  	})
    36  
    37  	_, warnings, err := cmd.Actor.CreateApplicationInSpace(
    38  		resources.Application{
    39  			Name:          cmd.RequiredArgs.AppName,
    40  			LifecycleType: constant.AppLifecycleType(cmd.AppType),
    41  		},
    42  		cmd.Config.TargetedSpace().GUID,
    43  	)
    44  	cmd.UI.DisplayWarnings(warnings)
    45  	if err != nil {
    46  		switch err.(type) {
    47  		case ccerror.NameNotUniqueInSpaceError:
    48  			cmd.UI.DisplayText(err.Error())
    49  		default:
    50  			return err
    51  		}
    52  	}
    53  
    54  	cmd.UI.DisplayOK()
    55  
    56  	return nil
    57  }