42 lines
1.0 KiB
Go
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
|
|
})
|
|
)
|