Discover books, shows, and movies at your level. Track your progress by filling your Shelf with what you find, and share with other language learners. *No dusting required. shlf.space
at master 41 lines 765 B view raw
1package main 2 3import ( 4 "context" 5 "log" 6 "log/slog" 7 "net/http" 8 "os" 9 10 "shlf.space/internal/config" 11 "shlf.space/internal/server" 12) 13 14func main() { 15 ctx := context.Background() 16 17 config, err := config.LoadConfig(ctx) 18 if err != nil { 19 slog.Error("failed to load config", "err", err) 20 } 21 22 state, err := server.Make(ctx, config) 23 defer func() { 24 if err := state.Close(); err != nil { 25 slog.Error("failed to close state", "err", err) 26 } 27 }() 28 if err != nil { 29 log.Fatalf("failed to start server: %v", err) 30 os.Exit(-1) 31 } 32 33 slog.Info("Starting server", "addr", config.Core.ListenAddr) 34 35 err = http.ListenAndServe(config.Core.ListenAddr, state.Router()) 36 if err != nil { 37 slog.Error("failed to start server", "err", err) 38 } 39 40 slog.Info("Shutdown complete.") 41}