@@ -9,45 +9,45 @@ import "github.com/jmoiron/sqlx"
99import _ "github.com/go-sql-driver/mysql"
1010
1111func main () {
12- mapper := func (name string ) string {
13- value := os .Getenv (name )
14- switch name {
15- case "DB_HOST" :
16- if value == "" {
17- value = "localhost"
18- }
19- case "DB_NAME" , "DB_USER" , "DB_PASSWORD" :
20- if value == "" {
21- fmt .Fprintf (os .Stderr , "%s env variable is not set or empty\n " , name )
22- os .Exit (1 )
23- }
24- }
25- return value
26- }
27-
28- dsn := os .Expand ("${DB_USER}:${DB_PASSWORD}@tcp(${DB_HOST}:3306)/${DB_NAME}" , mapper )
29- db , err := sqlx .Open ("mysql" , dsn )
30- if err != nil {
31- fmt .Fprintf (os .Stderr , "sqlx.Open failed: %v\n " , err )
32- os .Exit (1 )
33- }
34- defer db .Close ()
35-
36- if err = db .Ping (); err != nil {
37- fmt .Fprintf (os .Stderr , "Ping failed: could not connect to database: %v\n " , err )
38- os .Exit (1 )
39- }
40-
41- r := chi .NewRouter ()
42- registerRoutes (r , db )
43-
44- port := os .Getenv ("PORT" )
45- if port == "" {
46- port = "3000"
47- }
48-
49- fmt .Println ("Listen on " + port )
50- err = http .ListenAndServe (":" + port , r )
51- fmt .Fprintf (os .Stderr , "ListenAndServe failed: %v\n " , err )
52- os .Exit (1 )
12+ mapper := func (name string ) string {
13+ value := os .Getenv (name )
14+ switch name {
15+ case "DB_HOST" :
16+ if value == "" {
17+ value = "localhost"
18+ }
19+ case "DB_NAME" , "DB_USER" , "DB_PASSWORD" :
20+ if value == "" {
21+ fmt .Fprintf (os .Stderr , "%s env variable is not set or empty\n " , name )
22+ os .Exit (1 )
23+ }
24+ }
25+ return value
26+ }
27+
28+ dsn := os .Expand ("${DB_USER}:${DB_PASSWORD}@tcp(${DB_HOST}:3306)/${DB_NAME}" , mapper )
29+ db , err := sqlx .Open ("mysql" , dsn )
30+ if err != nil {
31+ fmt .Fprintf (os .Stderr , "sqlx.Open failed: %v\n " , err )
32+ os .Exit (1 )
33+ }
34+ defer db .Close ()
35+
36+ if err = db .Ping (); err != nil {
37+ fmt .Fprintf (os .Stderr , "Ping failed: could not connect to database: %v\n " , err )
38+ os .Exit (1 )
39+ }
40+
41+ r := chi .NewRouter ()
42+ registerRoutes (r , db )
43+
44+ port := os .Getenv ("PORT" )
45+ if port == "" {
46+ port = "3000"
47+ }
48+
49+ fmt .Println ("Listen on " + port )
50+ err = http .ListenAndServe (":" + port , r )
51+ fmt .Fprintf (os .Stderr , "ListenAndServe failed: %v\n " , err )
52+ os .Exit (1 )
5353}
0 commit comments