-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
64 lines (54 loc) · 2.08 KB
/
main.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
package main
import (
"bytes"
"log"
"github.com/alecthomas/kingpin/v2"
)
var (
loarBalancers = kingpin.Command("lb", "Output LoadBalancers Info")
instances = kingpin.Command("in", "Output Instances Info")
secrityGroups = kingpin.Command("sg", "Output SecurityGroups Info")
URL = kingpin.Flag("url", "Confluence URL").Envar("CONFLUENCE_URL").Short('u').Required().String()
USERNAME = kingpin.Flag("username", "Confluence UserName").Envar("CONFLUENCE_USER").Short('n').Required().String()
PASSWORD = kingpin.Flag("password", "Confluence Password").Envar("CONFLUENCE_PASSWORD").Short('p').Required().String()
PageID = kingpin.Flag("id", "Confluence PageID").Envar("CONFLUENCE_PAGE_ID").Short('i').Required().String()
PageTitle = kingpin.Flag("title", "Confluence PageTitle").Envar("CONFLUENCE_PAGE_TITLE").Short('t').Required().String()
PageSpace = kingpin.Flag("space", "Confluence Space").Envar("CONFLUENCE_PAGE_SPACE").Short('s').Required().String()
ResultTemplate bytes.Buffer
allInstances [][]string
allLoadbalancers [][]string
allSecurityGroups [][]string
)
func main() {
var inventoryList [][]string
var useTemplate string
switch kingpin.Parse() {
case "in":
if err := GetInstances(); err != nil {
log.Fatalf("Instances Error: %v", err)
}
inventoryList = allInstances
useTemplate = InstancesTemplate
case "lb":
if err := GetLoadBalancers(); err != nil {
log.Fatalf("LoadBalancer Error: %v", err)
}
inventoryList = allLoadbalancers
useTemplate = LoadBalancerTemplate
case "sg":
if err := GetSecurityGroup(); err != nil {
log.Fatalf("SecurityGroup Error: %v", err)
}
inventoryList = allSecurityGroups
useTemplate = SecurityGroupTemplate
}
Contents, err := RendarTemplate(inventoryList, useTemplate)
if err != nil {
log.Fatalf("Rendaring Template Error: %v", err)
}
r, err := UpdateContents(*URL, *USERNAME, *PASSWORD, *PageTitle, *PageID, *PageSpace, Contents)
if err != nil {
log.Fatalf("UpdateContents Error: %v", err)
}
log.Printf("Update New version %v\n", r)
}