/
cmd_records_create.go
83 lines (76 loc) · 1.63 KB
/
cmd_records_create.go
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
package cmd
import (
"log"
"golang.org/x/net/context"
"github.com/codegangsta/cli"
"github.com/crackcomm/cloudflare"
)
var cmdRecordsCreate = cli.Command{
Name: "create",
Usage: "creates zone record",
Flags: []cli.Flag{
cli.StringFlag{
Name: "domain",
Usage: "domain name",
},
cli.StringFlag{
Name: "zone",
Usage: "zone id",
},
cli.StringFlag{
Name: "name",
Usage: "record name (required)",
},
cli.StringFlag{
Name: "content",
Usage: "record content (required)",
},
cli.StringFlag{
Name: "type",
Usage: "record type (required)",
},
cli.BoolFlag{
Name: "proxied",
Usage: "should record be proxied",
},
cli.IntFlag{
Name: "ttl",
Value: 3600,
Usage: "record time to live",
},
cli.IntFlag{
Name: "priority",
Usage: "record priority",
},
},
Action: func(c *cli.Context) {
zoneID, err := getZoneID(c)
if err != nil {
log.Fatal(err)
}
if c.String("type") == "" {
log.Fatal("Usage error: --type flag is required.")
}
if c.String("name") == "" {
log.Fatal("Usage error: --name flag is required.")
}
if c.String("content") == "" {
log.Fatal("Usage error: --content flag is required.")
}
record := &cloudflare.Record{
Type: c.String("type"),
Name: c.String("name"),
Content: c.String("content"),
TTL: c.Int("ttl"),
Proxied: c.Bool("proxied"),
Priority: c.Int("priority"),
ZoneID: zoneID,
}
if err := client(c).Records.Create(context.Background(), record); err != nil {
log.Fatalf("Error creating record: %v", err)
}
table := newRecordsTable()
table.add(record)
table.Render()
},
}