plc.directory mirror
1package main
2
3import (
4 "log"
5 "os"
6
7 _ "github.com/lib/pq"
8
9 "tangled.sh/seiso.moe/aletheia.directory/pkg/api"
10 "tangled.sh/seiso.moe/aletheia.directory/pkg/config"
11 "tangled.sh/seiso.moe/aletheia.directory/pkg/database"
12 "tangled.sh/seiso.moe/aletheia.directory/pkg/logging"
13)
14
15func main() {
16 cfg, err := config.LoadConfig("./plc.toml")
17 if err != nil {
18 log.Fatal(err)
19 }
20
21 logger := logging.NewLogger(cfg.LogLevel)
22
23 client, err := database.NewClient(cfg.DatabaseURL, logger)
24 if err != nil {
25 logger.Error("failed to setup database", "error", err)
26 os.Exit(1)
27 }
28 defer func() {
29 if err := client.Close(); err != nil {
30 logger.Error("failed to close database connection", "error", err)
31 }
32 }()
33
34 server := api.NewServer(client, logger, cfg.Port)
35 if err := server.Start(); err != nil {
36 logger.Error("server stopped", "error", err)
37 os.Exit(1)
38 }
39}