aboutsummaryrefslogtreecommitdiff
path: root/sklad/main.go
blob: c1eaa994acc6758b1725b95fa7a047ca7b61b58f (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
52
53
package main

import (
	"html/template"
	"log"
	"net/http"
	"os"
)

var (
	templates *template.Template

	// session storage: UUID -> net.SplitHostPort(http.Server.RemoteAddr)[0]
	sessions = map[string]string{}
)

func main() {
	if len(os.Args) != 3 {
		log.Fatalf("usage: %s ADDRESS DATABASE\n", os.Args[0])
	}

	var address string
	address, dbPath = os.Args[1], os.Args[2]

	// Load database.
	if err := loadDatabase(); err != nil {
		log.Fatalln(err)
	}

	// Load HTML templates from the current working directory.
	var err error
	templates, err = template.ParseGlob("*.tmpl")
	if err != nil {
		log.Fatalln(err)
	}

	// TODO: Eventually we will need to load a font file for label printing.
	//  - The path might be part of configuration, or implicit by filename.

	// TODO: Some routing, don't forget about sessions.
	//  - https://stackoverflow.com/a/33880971/76313
	//
	//  - GET /login
	//  - GET /container?id=UA1
	//  - GET /series?id=A
	//  - GET /search?q=bottle
	//
	//  - POST /login?pass=hue
	//  - POST /logout
	//  - POST /label?id=UA1

	log.Fatalln(http.ListenAndServe(address, nil))
}