@@ -11,15 +11,14 @@ import (
11
11
"os"
12
12
"path/filepath"
13
13
"runtime"
14
- "strconv"
15
14
"time"
16
15
)
17
16
18
17
var (
19
- host string
20
- port int
21
- cacheDriver string
22
- redisUrl string
18
+ host * string
19
+ port * int
20
+ cacheDriver * string
21
+ redisUrl * string
23
22
// Storage ... Server Cache Storage
24
23
Storage cache.Storage
25
24
// Logger ... Logger Driver
32
31
routes = map [string ]func (w http.ResponseWriter , r * http.Request ){
33
32
`/convert` : Convert ,
34
33
}
35
-
36
34
_ , filename , _ , _ = runtime .Caller (0 )
37
35
defaultStaticPath = filepath .Dir (filename ) + `/public`
38
- staticPath = defaultStaticPath
36
+ staticPath = & defaultStaticPath
39
37
)
40
38
41
39
// init ... init function of the server
@@ -50,19 +48,19 @@ func init() {
50
48
logging .SetBackend (backendLevelFormatted )
51
49
52
50
// Caching
53
- host = GetEnv (`H` , `0.0.0.0` )
54
- port , _ = strconv . Atoi ( GetEnv ( `P` , ` 5000` ) )
55
- cacheDriver = GetEnv (`CACHE` , `memory` )
56
- redisUrl = GetEnv (`REDIS_URL` , `` )
57
- staticPath = GetEnv (`STATIC_PATH` , defaultStaticPath )
51
+ host = flag . String (`H` , `0.0.0.0` , `Host binding address ` )
52
+ port = flag . Int ( `P` , 5000 , `Host binding port` )
53
+ cacheDriver = flag . String (`CACHE` , `memory` , `Cache driver (default memory) ` )
54
+ redisUrl = flag . String (`REDIS_URL` , `` , `Redis URI for redis cache driver ` )
55
+ staticPath = flag . String (`STATIC_PATH` , defaultStaticPath , `Webserver static path` )
58
56
59
57
flag .Parse ()
60
58
61
59
var err error
62
60
63
- switch cacheDriver {
61
+ switch * cacheDriver {
64
62
case `redis` :
65
- if Storage , err = redis .NewStorage (redisUrl ); err != nil {
63
+ if Storage , err = redis .NewStorage (* redisUrl ); err != nil {
66
64
Logger .Panic (err )
67
65
}
68
66
break
@@ -75,18 +73,18 @@ func init() {
75
73
// main ... main function start the server
76
74
func main () {
77
75
78
- Logger .Infof ("host %s" , host )
79
- Logger .Infof ("port %d" , port )
80
- Logger .Infof ("cacheDriver %s" , cacheDriver )
81
- Logger .Infof ("REDIS_URL %s" , redisUrl )
82
- Logger .Infof ("Static dir %s" , staticPath )
76
+ Logger .Infof ("host %s" , * host )
77
+ Logger .Infof ("port %d" , * port )
78
+ Logger .Infof ("cacheDriver %s" , * cacheDriver )
79
+ Logger .Infof ("REDIS_URL %s" , * redisUrl )
80
+ Logger .Infof ("Static dir %s" , * staticPath )
83
81
84
82
// handle routers
85
83
for k , v := range routes {
86
84
http .HandleFunc (k , v )
87
85
}
88
86
89
- go serveHTTP (host , port )
87
+ go serveHTTP (* host , * port )
90
88
select {}
91
89
}
92
90
@@ -96,7 +94,7 @@ func serveHTTP(host string, port int) {
96
94
mux := http .NewServeMux ()
97
95
for k , v := range routes {
98
96
mux .HandleFunc (k , v )
99
- mux .Handle (`/` , http .FileServer (http .Dir (staticPath )))
97
+ mux .Handle (`/` , http .FileServer (http .Dir (* staticPath )))
100
98
}
101
99
102
100
addr := fmt .Sprintf ("%v:%d" , host , port )
0 commit comments