-
Notifications
You must be signed in to change notification settings - Fork 2
/
app_setting.go
42 lines (34 loc) · 960 Bytes
/
app_setting.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package mfx
import (
"github.com/gstones/moke-kit/orm/nosql/key"
"github.com/gstones/moke-kit/utility"
"go.uber.org/fx"
)
type AppParams struct {
fx.In
AppName string `name:"AppName"`
AppId string `name:"AppId"`
Deployment string `name:"Deployment"`
Version string `name:"Version"`
}
type AppResult struct {
fx.Out
AppName string `name:"AppName" envconfig:"APP_NAME" default:"app"`
AppId string `name:"AppId" envconfig:"APP_ID" default:"app"`
Deployment string `name:"Deployment" envconfig:"DEPLOYMENT" default:"local"`
Version string `name:"Version" envconfig:"VERSION" default:"0.0.1"`
}
func (ar *AppResult) loadFromEnv() error {
if err := utility.Load(ar); err != nil {
return err
}
key.SetNamespace(ar.Deployment)
return nil
}
// SettingModule is a module that provides the application settings.
var SettingModule = fx.Provide(
func() (out AppResult, err error) {
err = out.loadFromEnv()
return
},
)