github.com/koron/hk@v0.0.0-20150303213137-b8aeaa3ab34c/create.go (about) 1 package main 2 3 import ( 4 "log" 5 6 "github.com/heroku/hk/Godeps/_workspace/src/github.com/bgentry/heroku-go" 7 ) 8 9 var cmdCreate = &Command{ 10 Run: runCreate, 11 Usage: "create [-r <region>] [-o <org>] [--http-git] [<name>]", 12 Category: "app", 13 Short: "create an app", 14 Long: ` 15 Create creates a new Heroku app. If <name> is not specified, the 16 app is created with a random haiku name. 17 18 Options: 19 20 -r <region> Heroku region to create app in 21 -o <org> name of Heroku organization to create app in 22 <name> optional name for the app 23 24 Examples: 25 26 $ hk create 27 Created dodging-samurai-42. 28 29 $ hk create -r eu myapp 30 Created myapp. 31 `, 32 } 33 34 var flagRegion string 35 var flagOrgName string 36 var flagHTTPGit bool 37 38 func init() { 39 cmdCreate.Flag.StringVarP(&flagRegion, "region", "r", "", "region name") 40 cmdCreate.Flag.StringVarP(&flagOrgName, "org", "o", "", "organization name") 41 cmdCreate.Flag.BoolVar(&flagHTTPGit, "http-git", false, "use http git remote") 42 } 43 44 func runCreate(cmd *Command, args []string) { 45 appname := "" 46 if len(args) > 0 { 47 appname = args[0] 48 } 49 50 var opts heroku.OrganizationAppCreateOpts 51 if appname != "" { 52 opts.Name = &appname 53 } 54 if flagOrgName == "personal" { // "personal" means "no org" 55 personal := true 56 opts.Personal = &personal 57 } else if flagOrgName != "" { 58 opts.Organization = &flagOrgName 59 } 60 if flagRegion != "" { 61 opts.Region = &flagRegion 62 } 63 64 app, err := client.OrganizationAppCreate(&opts) 65 must(err) 66 67 addGitRemote(app, flagHTTPGit) 68 69 if app.Organization != nil { 70 log.Printf("Created %s in the %s org.", app.Name, app.Organization.Name) 71 } else { 72 log.Printf("Created %s.", app.Name) 73 } 74 }