Files
core/app/base_module.go
2025-04-25 15:00:25 +03:00

42 lines
1.0 KiB
Go

package app
import (
"go.uber.org/zap"
"os"
"universe.mrlokop.dev/core/config"
"universe.mrlokop.dev/core/modules"
)
var (
Module = modules.SimpleModule("universe:core", func(context modules.ModuleFactoryContext) error {
context.Invoke(func(log *zap.Logger, info *Info, env AppEnvType) {
hostname, err := os.Hostname()
if err != nil {
hostname = "unknown"
}
log.Sugar().Infof("Starting %s on %s, pid=%v, env=%s", info.ServiceName, hostname, os.Getpid(), env)
})
context.Provide(func(path RunPath) StoragePath {
return path.Join("storage")
})
context.Provide(provideEnv)
context.Provide(provideAppInfo)
context.Provide(func(app Application) *config.UniverseConfig {
return app.Config()
})
context.Provide(func(env AppEnvType) *zap.Logger {
if env == AppEnvTypeDevelopment {
config := zap.NewDevelopmentConfig()
config.OutputPaths = []string{"stdout"}
return zap.Must(config.Build(
zap.WithCaller(true),
))
}
return zap.Must(zap.NewProduction())
})
return nil
})
)