github.com/loafoe/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 }