diff options
Diffstat (limited to '')
-rw-r--r-- | forged/internal/server/server.go | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/forged/internal/server/server.go b/forged/internal/server/server.go index 62a9442..39a6823 100644 --- a/forged/internal/server/server.go +++ b/forged/internal/server/server.go @@ -39,11 +39,13 @@ func New(configPath string) (server *Server, err error) { server.global.ForgeVersion = "unknown" // TODO server.global.ForgeTitle = server.config.General.Title + server.global.Config = &server.config + server.global.Queries = queries - server.hookServer = hooks.New(server.config.Hooks, &server.global) - server.lmtpServer = lmtp.New(server.config.LMTP, &server.global) - server.webServer = web.New(server.config.Web, &server.global, queries) - server.sshServer, err = ssh.New(server.config.SSH, &server.global) + server.hookServer = hooks.New(&server.global) + server.lmtpServer = lmtp.New(&server.global) + server.webServer = web.New(&server.global) + server.sshServer, err = ssh.New(&server.global) if err != nil { return server, fmt.Errorf("create SSH server: %w", err) } @@ -57,12 +59,15 @@ func (server *Server) Run(ctx context.Context) (err error) { g, gctx := errgroup.WithContext(ctx) - server.database, err = database.Open(gctx, server.config.DB) + server.database, err = database.Open(gctx, server.config.DB.Conn) if err != nil { return fmt.Errorf("open database: %w", err) } defer server.database.Close() + // TODO: neater way to do this for transactions in querypool? + server.global.DB = &server.database + g.Go(func() error { return server.hookServer.Run(gctx) }) g.Go(func() error { return server.lmtpServer.Run(gctx) }) g.Go(func() error { return server.webServer.Run(gctx) }) |