/
main.go
46 lines (37 loc) · 864 Bytes
/
main.go
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
package main
import (
"flag"
"fmt"
"net/http"
"github.com/unirita/gocutoweb/config"
"github.com/unirita/gocutoweb/log"
)
type arguments struct {
configPath string
}
const defaultConfig = `web.ini`
func main() {
args := fetchArgs()
if args.configPath == "" {
args.configPath = defaultConfig
}
if err := config.Load(args.configPath); err != nil {
fmt.Println("Could not load config:", err)
return
}
if err := log.Init(); err != nil {
fmt.Println("Could not initialize logger:", err)
return
}
listenHost := fmt.Sprintf(":%d", config.Server.ListenPort)
if err := http.ListenAndServe(listenHost, setupHandler()); err != nil {
fmt.Println("Could not start to listen:", err)
return
}
}
func fetchArgs() *arguments {
args := new(arguments)
flag.StringVar(&args.configPath, "c", "", "Config file path")
flag.Parse()
return args
}