@@ -6,9 +6,29 @@ import (
6
6
"fmt"
7
7
"net/http"
8
8
9
+ log "github.com/sirupsen/logrus"
10
+ flag "github.com/spf13/pflag"
11
+
9
12
_ "github.com/lib/pq"
10
13
)
11
14
15
+ var (
16
+ dbUser string
17
+ dbPassword string
18
+ dbHost string
19
+ dbName string
20
+ )
21
+
22
+ func init () {
23
+ log .SetFormatter (& log.JSONFormatter {})
24
+
25
+ flag .StringVar (& dbName , "db-name" , getEnv ("DB_NAME" , "postgres" ), "database name" )
26
+ flag .StringVar (& dbUser , "db-user" , getEnv ("DB_USER" , "postgres" ), "database username" )
27
+ flag .StringVar (& dbPassword , "db-password" , os .Getenv ("DB_PASSWORD" ), "database password" )
28
+ flag .StringVar (& dbHost , "db-hostname" , getEnv ("DB_HOST" , "localhost" ), "database hostname" )
29
+ flag .Parse ()
30
+ }
31
+
12
32
type Client struct {
13
33
PSK string `json:"psk"`
14
34
Peer
@@ -24,12 +44,20 @@ type GatewayResponse struct {
24
44
}
25
45
26
46
func main () {
27
- http .HandleFunc ("/gateways/gw0" , func (w http.ResponseWriter , _ * http.Request ) {
47
+ http .HandleFunc ("/gateways/gw0" , gatewayConfigHandler ())
48
+
49
+ bindAddr := fmt .Sprintf ("%s:%d" , "127.0.0.1" , 6969 )
50
+ fmt .Println ("running @" , bindAddr )
51
+ fmt .Println ((& http.Server {Addr : bindAddr }).ListenAndServe ())
52
+ }
53
+
54
+ func gatewayConfigHandler () func (w http.ResponseWriter , _ * http.Request ) {
55
+ return func (w http.ResponseWriter , _ * http.Request ) {
28
56
postgresConnection := fmt .Sprintf ("user=%s password=%s dbname=%s host=%s sslmode=disable" ,
29
- "postgres" ,
30
- "asdf" ,
31
- "postgres" ,
32
- "localhost" )
57
+ dbUser ,
58
+ dbPassword ,
59
+ dbName ,
60
+ dbHost )
33
61
34
62
db , err := sql .Open ("postgres" , postgresConnection )
35
63
if err != nil {
@@ -62,9 +90,13 @@ func main() {
62
90
63
91
w .WriteHeader (http .StatusOK )
64
92
json .NewEncoder (w ).Encode (resp )
65
- })
93
+ }
94
+ }
66
95
67
- bindAddr := fmt .Sprintf ("%s:%d" , "127.0.0.1" , 6969 )
68
- fmt .Println ("running @" , bindAddr )
69
- fmt .Println ((& http.Server {Addr : bindAddr }).ListenAndServe ())
96
+ func getEnv (key , fallback string ) string {
97
+ if value , ok := os .LookupEnv (key ); ok {
98
+ return value
99
+ }
100
+
101
+ return fallback
70
102
}
0 commit comments