package main import ( "context" "librapi/server" "librapi/services" "os" "os/signal" "github.com/rs/zerolog" "github.com/rs/zerolog/log" "librapi/handlers/home" "librapi/handlers/login" "librapi/handlers/upload" ) func initLogger() { zerolog.TimeFieldFormat = zerolog.TimeFormatUnix log.Logger = log.With().Caller().Logger().Output(zerolog.ConsoleWriter{Out: os.Stderr}) } func main() { initLogger() ctx, fnCancel := signal.NotifyContext(context.Background(), os.Kill, os.Interrupt) defer fnCancel() auth := services.NewAuthentication(ctx) srv := server.NewServer( ctx, services.GetEnv().GetPort(), server.NewHandler("/", home.Handler()), server.NewHandler("/upload", upload.Handler(auth)), server.NewHandler("/login", login.Handler(auth)), ) srv.Serve() <-srv.Done() <-auth.Done() }