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  }