-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhedynip.go
98 lines (77 loc) · 2.05 KB
/
hedynip.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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package main
import (
"fmt"
"os"
"github.com/gookit/config"
"github.com/gookit/config/json"
kingpin "gopkg.in/alecthomas/kingpin.v2"
)
func main() {
kingpin.Version(fullversion())
kingpin.CommandLine.HelpFlag.Short('h')
kingpin.CommandLine.VersionFlag.Short('v')
var appFlags = kingpin.Parse()
config.AddDriver(json.Driver)
configFile := *configlocation
if configFile != "" {
err := config.LoadFiles(configFile)
if err != nil {
fmt.Printf("Config %s not found.\n", configFile)
}
} else {
configFile = "hedynip.json"
err := config.LoadFiles(configFile)
if err != nil {
fmt.Println("Config hedynip.json not found.")
}
}
var username, password string
credentials, _ := config.StringMap("credentials")
if *cmdusername != "" {
username = *cmdusername
} else {
username = credentials["username"]
}
if *cmdpassword != "" {
password = *cmdpassword
} else {
password = credentials["password"]
}
switch appFlags {
case listall.FullCommand():
if username == "" || password == "" {
fmt.Println("Error: Username & Password required")
os.Exit(1)
}
listTunnels(username, password)
case listtunnel.FullCommand():
updatekey, _ := config.StringMap(*listtunnelid)
password = updatekey["updatekey"]
if username == "" || password == "" {
fmt.Println("Error: Username & Password required")
os.Exit(1)
}
listTunnelbyID(*listtunnelid, username, password)
case updateIP.FullCommand():
updatekey, _ := config.StringMap(*updateIPtunnelid)
password = updatekey["updatekey"]
if username == "" || password == "" {
fmt.Println("Error: Username & Password required")
os.Exit(1)
}
if *updateIPtunnelIP != "" {
updateTunnelIPv4(*updateIPtunnelid, *updateIPtunnelIP, username, password)
} else {
updateTunnelIPv4(*updateIPtunnelid, getIPv4(), username, password)
}
case getmyip.FullCommand():
fmt.Println(getIPv4())
case showconfig.FullCommand():
err := config.LoadFiles(configFile)
if err != nil {
fmt.Println(err)
} else {
fmt.Printf("config data: \n %#v\n", config.Data())
}
}
}