58 lines
1.3 KiB
Go
58 lines
1.3 KiB
Go
// Package main is the entry point for the webhooker application.
|
|
package main
|
|
|
|
import (
|
|
"go.uber.org/fx"
|
|
"sneak.berlin/go/webhooker/internal/config"
|
|
"sneak.berlin/go/webhooker/internal/database"
|
|
"sneak.berlin/go/webhooker/internal/delivery"
|
|
"sneak.berlin/go/webhooker/internal/globals"
|
|
"sneak.berlin/go/webhooker/internal/handlers"
|
|
"sneak.berlin/go/webhooker/internal/healthcheck"
|
|
"sneak.berlin/go/webhooker/internal/logger"
|
|
"sneak.berlin/go/webhooker/internal/middleware"
|
|
"sneak.berlin/go/webhooker/internal/server"
|
|
"sneak.berlin/go/webhooker/internal/session"
|
|
)
|
|
|
|
// Build-time variables set via -ldflags.
|
|
//
|
|
//nolint:gochecknoglobals // Build-time variables injected by the linker.
|
|
var (
|
|
version = "dev"
|
|
appname = "webhooker"
|
|
)
|
|
|
|
func main() {
|
|
globals.Appname = appname
|
|
globals.Version = version
|
|
|
|
fx.New(
|
|
fx.Provide(
|
|
globals.New,
|
|
logger.New,
|
|
config.New,
|
|
database.New,
|
|
database.NewWebhookDBManager,
|
|
database.NewRetentionReaper,
|
|
healthcheck.New,
|
|
session.New,
|
|
handlers.New,
|
|
middleware.New,
|
|
delivery.New,
|
|
// Wire *delivery.Engine as delivery.Notifier so the
|
|
// webhook handler can notify the engine of new deliveries.
|
|
func(e *delivery.Engine) delivery.Notifier { return e },
|
|
server.New,
|
|
),
|
|
fx.Invoke(
|
|
func(
|
|
*server.Server,
|
|
*delivery.Engine,
|
|
*database.RetentionReaper,
|
|
) {
|
|
},
|
|
),
|
|
).Run()
|
|
}
|