at main 863 B view raw
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}