forked from
tangled.org/core
Monorepo for Tangled — https://tangled.org
1package main
2
3import (
4 "context"
5 "net/http"
6 "os"
7
8 "tangled.org/core/appview/config"
9 "tangled.org/core/appview/state"
10 "tangled.org/core/appview/web"
11 tlog "tangled.org/core/log"
12)
13
14func main() {
15 ctx := context.Background()
16 logger := tlog.New("appview")
17 ctx = tlog.IntoContext(ctx, logger)
18
19 c, err := config.LoadConfig(ctx)
20 if err != nil {
21 logger.Error("failed to load config", "error", err)
22 return
23 }
24
25 state, err := state.Make(ctx, c)
26 defer func() {
27 if err := state.Close(); err != nil {
28 logger.Error("failed to close state", "err", err)
29 }
30 }()
31
32 if err != nil {
33 logger.Error("failed to start appview", "err", err)
34 os.Exit(-1)
35 }
36
37 logger.Info("starting server", "address", c.Core.ListenAddr)
38
39 if err := http.ListenAndServe(c.Core.ListenAddr, web.RouterFromState(state)); err != nil {
40 logger.Error("failed to start appview", "err", err)
41 }
42}