github.com/koron/hk@v0.0.0-20150303213137-b8aeaa3ab34c/domains.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "log" 6 "os" 7 "text/tabwriter" 8 9 "github.com/heroku/hk/Godeps/_workspace/src/github.com/bgentry/heroku-go" 10 ) 11 12 var cmdDomains = &Command{ 13 Run: runDomains, 14 Usage: "domains", 15 NeedsApp: true, 16 Category: "domain", 17 Short: "list domains", 18 Long: ` 19 Lists domains. 20 21 Examples: 22 23 $ hk domains 24 test.herokuapp.com 25 www.test.com 26 `, 27 } 28 29 func runDomains(cmd *Command, args []string) { 30 w := tabwriter.NewWriter(os.Stdout, 1, 2, 2, ' ', 0) 31 defer w.Flush() 32 33 appname := mustApp() 34 if len(args) != 0 { 35 cmd.PrintUsage() 36 os.Exit(2) 37 } 38 domains, err := client.DomainList(appname, &heroku.ListRange{ 39 Field: "hostname", 40 Max: 1000, 41 }) 42 must(err) 43 44 for _, d := range domains { 45 fmt.Fprintln(w, d.Hostname) 46 } 47 } 48 49 var cmdDomainAdd = &Command{ 50 Run: runDomainAdd, 51 Usage: "domain-add <domain>", 52 NeedsApp: true, 53 Category: "domain", 54 Short: "add a domain", 55 } 56 57 func runDomainAdd(cmd *Command, args []string) { 58 appname := mustApp() 59 if len(args) != 1 { 60 cmd.PrintUsage() 61 os.Exit(2) 62 } 63 domain := args[0] 64 _, err := client.DomainCreate(appname, domain) 65 must(err) 66 log.Printf("Added %s to %s.", domain, appname) 67 } 68 69 var cmdDomainRemove = &Command{ 70 Run: runDomainRemove, 71 Usage: "domain-remove <domain>", 72 NeedsApp: true, 73 Category: "domain", 74 Short: "remove a domain", 75 } 76 77 func runDomainRemove(cmd *Command, args []string) { 78 appname := mustApp() 79 if len(args) != 1 { 80 cmd.PrintUsage() 81 os.Exit(2) 82 } 83 domain := args[0] 84 must(client.DomainDelete(appname, domain)) 85 log.Printf("Removed %s from %s.", domain, appname) 86 }