diff options
author | Sebastien Douheret <sebastien.douheret@iot.bzh> | 2017-05-17 11:28:57 +0200 |
---|---|---|
committer | Sebastien Douheret <sebastien.douheret@iot.bzh> | 2017-05-17 14:04:32 +0200 |
commit | 40a7183f3b4aa32379aa8b4949f5f9c5e32f79f6 (patch) | |
tree | 25a98c1b6c6c7b5e186ae3cf0dc11807b2fa088a /lib/xdsconfig/fileconfig.go | |
parent | c07adb807c41a1545a9a0f5bbf40080d86946538 (diff) |
Add SDKs support.
Don't allow to install SDKs through XDS for now.
Only probe existing SDKs that have been manually installed using scripts/agl/install-agl-sdks.sh.
Signed-off-by: Sebastien Douheret <sebastien.douheret@iot.bzh>
Diffstat (limited to 'lib/xdsconfig/fileconfig.go')
-rw-r--r-- | lib/xdsconfig/fileconfig.go | 46 |
1 files changed, 17 insertions, 29 deletions
diff --git a/lib/xdsconfig/fileconfig.go b/lib/xdsconfig/fileconfig.go index 3daf77c..776eb78 100644 --- a/lib/xdsconfig/fileconfig.go +++ b/lib/xdsconfig/fileconfig.go @@ -9,6 +9,8 @@ import ( "path/filepath" "regexp" "strings" + + "github.com/iotbzh/xds-server/lib/common" ) type SyncThingConf struct { @@ -21,6 +23,7 @@ type SyncThingConf struct { type FileConfig struct { WebAppDir string `json:"webAppDir"` ShareRootDir string `json:"shareRootDir"` + SdkRootDir string `json:"sdkRootDir"` HTTPPort string `json:"httpPort"` SThgConf *SyncThingConf `json:"syncthing"` LogsDir string `json:"logsDir"` @@ -78,23 +81,20 @@ func updateConfigFromFile(c *Config, confFile string) error { c.FileConf = fCfg // Support environment variables (IOW ${MY_ENV_VAR} syntax) in config.json - // TODO: better to use reflect package to iterate on fields and be more generic - var rep string - if rep, err = resolveEnvVar(fCfg.WebAppDir); err != nil { - return err - } - fCfg.WebAppDir = path.Clean(rep) - - if rep, err = resolveEnvVar(fCfg.ShareRootDir); err != nil { - return err - } - fCfg.ShareRootDir = path.Clean(rep) - - if rep, err = resolveEnvVar(fCfg.SThgConf.Home); err != nil { - return err + for _, field := range []*string{ + &fCfg.WebAppDir, + &fCfg.ShareRootDir, + &fCfg.SdkRootDir, + &fCfg.LogsDir, + &fCfg.SThgConf.Home} { + + rep, err := resolveEnvVar(*field) + if err != nil { + return err + } + *field = path.Clean(rep) } - fCfg.SThgConf.Home = path.Clean(rep) - + // Config file settings overwrite default config if fCfg.WebAppDir != "" { @@ -105,7 +105,7 @@ func updateConfigFromFile(c *Config, confFile string) error { // Check first from current directory for _, rootD := range []string{cwd, exePath} { ff := path.Join(rootD, c.WebAppDir, "index.html") - if exists(ff) { + if common.Exists(ff) { c.WebAppDir = path.Join(rootD, c.WebAppDir) break } @@ -140,15 +140,3 @@ func resolveEnvVar(s string) (string, error) { return res, nil } - -// exists returns whether the given file or directory exists or not -func exists(path string) bool { - _, err := os.Stat(path) - if err == nil { - return true - } - if os.IsNotExist(err) { - return false - } - return true -} |