portal/cmd/portal/main.go

72 lines
1.5 KiB
Go
Raw Normal View History

2024-01-12 00:11:53 +00:00
package main
import (
2024-02-17 02:56:38 +00:00
"flag"
"net/http"
"git.lumeweb.com/LumeWeb/portal/config"
2024-01-28 08:55:09 +00:00
"git.lumeweb.com/LumeWeb/portal/account"
"git.lumeweb.com/LumeWeb/portal/api"
"git.lumeweb.com/LumeWeb/portal/cron"
"git.lumeweb.com/LumeWeb/portal/db"
_logger "git.lumeweb.com/LumeWeb/portal/logger"
2024-02-17 02:56:38 +00:00
"git.lumeweb.com/LumeWeb/portal/metadata"
"git.lumeweb.com/LumeWeb/portal/protocols"
"git.lumeweb.com/LumeWeb/portal/renter"
"git.lumeweb.com/LumeWeb/portal/storage"
"go.uber.org/fx"
"go.uber.org/fx/fxevent"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
2024-01-12 00:11:53 +00:00
func main() {
logger := _logger.NewLogger()
cfg, err := config.NewManager(logger)
2024-01-12 00:11:53 +00:00
if err != nil {
logger.Fatal("Failed to load config", zap.Error(err))
2024-01-12 00:11:53 +00:00
}
var fxDebug bool
flag.BoolVar(&fxDebug, "fx-debug", false, "Enable fx framework debug logging")
flag.Parse()
var fxLogger fx.Option
fxLogger = fx.WithLogger(func(logger *zap.Logger) fxevent.Logger {
log := &fxevent.ZapLogger{Logger: logger}
log.UseLogLevel(zapcore.InfoLevel)
log.UseErrorLevel(zapcore.ErrorLevel)
return log
})
if fxDebug {
fxLogger = fx.Options()
}
fx.New(
fx.Supply(cfg),
2024-02-17 08:12:44 +00:00
fx.Supply(logger),
fxLogger,
fx.Invoke(initCheckRequiredConfig),
fx.Provide(NewIdentity),
db.Module,
renter.Module,
storage.Module,
cron.Module,
2024-01-28 08:55:09 +00:00
account.Module,
2024-02-17 02:56:38 +00:00
metadata.Module,
protocols.BuildProtocols(cfg),
api.BuildApis(cfg),
fx.Provide(api.NewCasbin),
2024-01-28 08:29:52 +00:00
fx.Invoke(protocols.SetupLifecycles),
fx.Invoke(api.SetupLifecycles),
fx.Provide(NewServer),
fx.Invoke(func(*http.Server) {}),
).Run()
2024-01-12 00:11:53 +00:00
}