package mongox import ( "fmt" "github.com/fsnotify/fsnotify" "mongo.games.com/goserver/core" "mongo.games.com/goserver/core/viperx" ) var config = Configuration{} type Configuration struct { Path string } func (c *Configuration) Name() string { return "mongox" } func (c *Configuration) Init() error { if c.Path == "" { c.Path = "mongo.yaml" } vp := viperx.GetViper(c.Path) f := func() { cfg := &Config{} if err := vp.Unmarshal(cfg); err != nil { panic(fmt.Sprintf("mongox init error: %v", err)) } Restart(cfg) } f() vp.OnConfigChange(func(in fsnotify.Event) { if in.Name != c.Path { return } f() }) return nil } func (c *Configuration) Close() error { Close() return nil } func init() { core.RegistePackage(&config) }