aboutsummaryrefslogtreecommitdiff
path: root/cmd/web/main.go
blob: cda53005c39781320f16325df2c886c5bce1f0d2 (plain)
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
package main

import (
	"fmt"
	"log"
	"net/http"
	"os"
	"strconv"

	"github.com/joho/godotenv"

	"paterissa.net/mblog/cmd/web/handlers"
	"paterissa.net/mblog/internal/context"
)

type application struct {
	err		*log.Logger
	info	*log.Logger

	env		context.Environment
}

func main() {
	var app application

	app.err = log.New(os.Stderr, "ERROR\t", log.Ldate | log.Ltime)
	app.info = log.New(os.Stdout, "INFO\t", log.Ldate | log.Ltime)

	err := godotenv.Load()
	if err != nil {
		app.err.Fatal("Failed to load env")
	}
	
	app.env.Webmaster = os.Getenv("webmaster")
	app.env.Db.Username = os.Getenv("db_user")
	app.env.Db.Password = os.Getenv("db_pass")
	app.env.AppPort, err = strconv.ParseUint(os.Getenv("app_port"), 10, 64)
	if err != nil {
		app.env.AppPort = 5005
	}

	router := handlers.RegisterEndpoints(app.env.Webmaster)
	srv := &http.Server{
		Addr: fmt.Sprintf(":%d", app.env.AppPort),
		ErrorLog: app.err,
		Handler: router,
	}

	err = srv.ListenAndServe()
	app.err.Fatal(err)
}