X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=lib%2Fxdsconfig%2Ffileconfig.go;h=01bd4c9acdf1761a9a5ecad9eec1a5acbc2b80a3;hb=ad8f8d97a48f155ba94d5646012e969845a315ab;hp=776eb7874cc837411fbb406a956295b5d6724a1d;hpb=40a7183f3b4aa32379aa8b4949f5f9c5e32f79f6;p=src%2Fxds%2Fxds-server.git diff --git a/lib/xdsconfig/fileconfig.go b/lib/xdsconfig/fileconfig.go index 776eb78..01bd4c9 100644 --- a/lib/xdsconfig/fileconfig.go +++ b/lib/xdsconfig/fileconfig.go @@ -2,28 +2,27 @@ package xdsconfig import ( "encoding/json" - "fmt" "os" "os/user" "path" "path/filepath" - "regexp" "strings" "github.com/iotbzh/xds-server/lib/common" ) type SyncThingConf struct { - BinDir string `json:"binDir"` - Home string `json:"home"` - GuiAddress string `json:"gui-address"` - GuiAPIKey string `json:"gui-apikey"` + BinDir string `json:"binDir"` + Home string `json:"home"` + GuiAddress string `json:"gui-address"` + GuiAPIKey string `json:"gui-apikey"` + RescanIntervalS int `json:"rescanIntervalS"` } type FileConfig struct { WebAppDir string `json:"webAppDir"` ShareRootDir string `json:"shareRootDir"` - SdkRootDir string `json:"sdkRootDir"` + SdkRootDir string `json:"sdkRootDir"` HTTPPort string `json:"httpPort"` SThgConf *SyncThingConf `json:"syncthing"` LogsDir string `json:"logsDir"` @@ -86,15 +85,15 @@ func updateConfigFromFile(c *Config, confFile string) error { &fCfg.ShareRootDir, &fCfg.SdkRootDir, &fCfg.LogsDir, - &fCfg.SThgConf.Home} { + &fCfg.SThgConf.Home, + &fCfg.SThgConf.BinDir} { - rep, err := resolveEnvVar(*field) - if err != nil { + var err error + if *field, err = common.ResolveEnvVar(*field); err != nil { return err } - *field = path.Clean(rep) } - + // Config file settings overwrite default config if fCfg.WebAppDir != "" { @@ -122,21 +121,3 @@ func updateConfigFromFile(c *Config, confFile string) error { return nil } - -// resolveEnvVar Resolved environment variable regarding the syntax ${MYVAR} -func resolveEnvVar(s string) (string, error) { - re := regexp.MustCompile("\\${(.*)}") - vars := re.FindAllStringSubmatch(s, -1) - res := s - for _, v := range vars { - val := os.Getenv(v[1]) - if val == "" { - return res, fmt.Errorf("ERROR: %s env variable not defined", v[1]) - } - - rer := regexp.MustCompile("\\${" + v[1] + "}") - res = rer.ReplaceAllString(res, val) - } - - return res, nil -}