-
-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathserve.go
45 lines (41 loc) · 1.32 KB
/
serve.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
package cli
import (
"fmt"
"net/http"
"github.com/enchant97/note-mark/backend/config"
"github.com/enchant97/note-mark/backend/db"
"github.com/enchant97/note-mark/backend/handlers"
"github.com/enchant97/note-mark/backend/storage"
)
func commandServe(appConfig config.AppConfig) error {
// Connect to storage backend
storage_backend := storage.DiskController{}.New(appConfig.DataPath)
if err := storage_backend.Setup(); err != nil {
return err
}
defer storage_backend.TearDown()
// Connect to database
if err := db.InitDB(appConfig.DB); err != nil {
return err
}
if mux, err := handlers.SetupHandlers(appConfig, storage_backend); err != nil {
return err
} else {
// Start server
fmt.Println(`
oooo oooo ooooooo ooooooooooo ooooooooooo
8888o 88 o888 888o 88 888 88 888 88
88 888o88 888 888 888 888ooo8
88 8888 888o o888 888 888 oo
o88o 88 88ooo88 o888o o888ooo8888
oooo oooo o oooooooooo oooo oooo
8888o 888 888 888 888 888 o88
88 888o8 88 8 88 888oooo88 888888
88 888 88 8oooo88 888 88o 888 88o
o88o 8 o88o o88o o888o o888o 88o8 o888o o888o`)
fmt.Println()
fmt.Println("Serving on: http://" + appConfig.Bind.AsAddress())
e := http.ListenAndServe(appConfig.Bind.AsAddress(), mux)
return e
}
}