-
Notifications
You must be signed in to change notification settings - Fork 112
Expand file tree
/
Copy pathdomains.go
More file actions
107 lines (81 loc) · 2.13 KB
/
domains.go
File metadata and controls
107 lines (81 loc) · 2.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
package parser
import (
"fmt"
"github.com/deis/deis/client-go/cmd"
docopt "github.com/docopt/docopt-go"
)
// Domains routes domain commands to their specific function.
func Domains(argv []string) error {
usage := `
Valid commands for domains:
domains:add bind a domain to an application
domains:list list domains bound to an application
domains:remove unbind a domain from an application
Use 'deis help [command]' to learn more.
`
if len(argv) < 2 {
return domainsList([]string{"domains:list"})
}
switch argv[1] {
case "add":
return domainsAdd(combineCommand(argv))
case "list":
return domainsList(combineCommand(argv))
case "remove":
return domainsRemove(combineCommand(argv))
case "--help":
fmt.Print(usage)
return nil
default:
PrintUsage()
return nil
}
}
func domainsAdd(argv []string) error {
usage := `
Binds a domain to an application.
Usage: deis domains:add <domain> [options]
Arguments:
<domain>
the domain name to be bound to the application, such as 'domain.deisapp.com'.
Options:
-a --app=<app>
the uniquely identifiable name for the application.
`
args, err := docopt.Parse(usage, argv, true, "", false, true)
if err != nil {
return err
}
return cmd.DomainsAdd(safeGetValue(args, "--app"), safeGetValue(args, "<domain>"))
}
func domainsList(argv []string) error {
usage := `
Lists domains bound to an application.
Usage: deis domains:list [options]
Options:
-a --app=<app>
the uniquely identifiable name for the application.
`
args, err := docopt.Parse(usage, argv, true, "", false, true)
if err != nil {
return err
}
return cmd.DomainsList(safeGetValue(args, "--app"))
}
func domainsRemove(argv []string) error {
usage := `
Unbinds a domain for an application.
Usage: deis domains:remove <domain> [options]
Arguments:
<domain>
the domain name to be removed from the application.
Options:
-a --app=<app>
the uniquely identifiable name for the application.
`
args, err := docopt.Parse(usage, argv, true, "", false, true)
if err != nil {
return err
}
return cmd.DomainsRemove(safeGetValue(args, "--app"), safeGetValue(args, "<domain>"))
}