import (
"flag"
+ "fmt"
"github.com/fsnotify/fsnotify"
"github.com/spf13/viper"
"os"
type ConfigChangeCB func(filename string)
+type SDLNotificationCB func(string, ...string)
+
var ConfigChangeListeners []ConfigChangeCB
func parseCmd() string {
ConfigChangeListeners = append(ConfigChangeListeners, f)
}
+func PublishConfigChange(appName, eventJson string) error {
+ channel := fmt.Sprintf("CM_UPDATE:%s", appName)
+ if err := Sdl.StoreAndPublish(channel, eventJson, appName, eventJson); err != nil {
+ Logger.Error("Sdl.Store failed: %v", err)
+ return err
+ }
+ return nil
+}
+
+func (*Configurator) SetSDLNotificationCB(appName string, sdlNotificationCb SDLNotificationCB) error {
+ return Sdl.Subscribe(sdlNotificationCb, fmt.Sprintf("CM_UPDATE:%s", appName))
+}
+
func (*Configurator) GetString(key string) string {
return viper.GetString(key)
}