-
Notifications
You must be signed in to change notification settings - Fork 2
/
heroku.go
82 lines (70 loc) · 1.86 KB
/
heroku.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
package heroku
import (
"fmt"
"os"
"strings"
u "github.com/hiromaily/golibs/utils"
)
// GetMySQLInfo is to get MySQL information
func GetMySQLInfo(url string) (host, dbname, user, pass string, err error) {
//CLEARDB_DATABASE_URL: mysql://xxx:xxx@xxx/xxx?reconnect=true
if url == "" {
url = os.Getenv("CLEARDB_DATABASE_URL")
if url == "" {
err = fmt.Errorf("CLEARDB_DATABASE_URL was not found")
return
}
}
//_, err = fmt.Sscanf(url, "mysql://%s:%s@%s/%s?reconnect=true", &user, &pass, &host, &dbname)
tmp := strings.Split(url, "//")
tmp = strings.Split(tmp[1], ":")
user = tmp[0]
tmp = strings.Split(tmp[1], "@")
pass = tmp[0]
tmp = strings.Split(tmp[1], "/")
host = tmp[0]
dbname = strings.Split(tmp[1], "?")[0]
return
}
// GetRedisInfo is to get Redis information
func GetRedisInfo(url string) (host, pass string, port int, err error) {
if url == "" {
url = os.Getenv("REDIS_URL")
if url == "" {
err = fmt.Errorf("REDIS_URL was not found")
return
}
}
//redis://h:xxx@xxx:20819
//<password>@<hostname>:<port>
tmp := strings.Split(url, "//")
tmp = strings.Split(tmp[1], ":")
port = u.Atoi(tmp[2])
tmp = strings.Split(tmp[1], "@")
pass = tmp[0]
tmp = strings.Split(tmp[1], ":")
host = tmp[0]
return
}
// GetMongoInfo is to get MongoDB information
func GetMongoInfo(url string) (host, dbname, user, pass string, port int, err error) {
//MONGODB_URI: mongodb://xxx:xxx@xxx:61495/xxx
if url == "" {
url = os.Getenv("MONGODB_URI")
if url == "" {
err = fmt.Errorf("MONGODB_URI was not found")
return
}
}
//_, err = fmt.Sscanf(url, "mobngod://%s:%s@%s/%s?reconnect=true", &user, &pass, &host, &dbname)
tmp := strings.Split(url, "//")
tmp = strings.Split(tmp[1], ":")
user = tmp[0]
tmp2 := strings.Split(tmp[2], "/")
port = u.Atoi(tmp2[0])
dbname = tmp2[1]
tmp = strings.Split(tmp[1], "@")
pass = tmp[0]
host = tmp[1]
return
}