X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=lib%2Fxdsconfig%2Fconfigfile.go;h=009517f6c9b483f5e3ad669f2c4190ca99808c3f;hb=80708aa2578f3598fc8abd4d08e576947da22872;hp=c25207384fca8b3dd75f8a7db52f8fe44cb986a9;hpb=57bdfc8349b3c8a727d6f439e1fd12661bc00a15;p=src%2Fxds%2Fxds-agent.git diff --git a/lib/xdsconfig/configfile.go b/lib/xdsconfig/configfile.go index c252073..009517f 100644 --- a/lib/xdsconfig/configfile.go +++ b/lib/xdsconfig/configfile.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2017 "IoT.bzh" + * Copyright (C) 2017-2018 "IoT.bzh" * Author Sebastien Douheret * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -22,7 +22,7 @@ import ( "os" "path" - common "github.com/iotbzh/xds-common/golib" + common "gerrit.automotivelinux.org/gerrit/src/xds/xds-common.git/golib" ) type SyncThingConf struct { @@ -38,6 +38,7 @@ type XDSServerConf struct { // private/not exported fields ID string `json:"-"` + URLIndex string `json:"-"` APIBaseURL string `json:"-"` APIPartialURL string `json:"-"` } @@ -59,6 +60,9 @@ type FileConfig struct { func readGlobalConfig(c *Config, confFile string) error { + var fd *os.File + var fCfg = FileConfig{} + searchIn := make([]string, 0, 3) if confFile != "" { searchIn = append(searchIn, confFile) @@ -78,7 +82,8 @@ func readGlobalConfig(c *Config, confFile string) error { } if cFile == nil { c.Log.Infof("No config file found") - return nil + // always resolved env vars even if no config file found! + goto resVars } c.Log.Infof("Use config file: %s", *cFile) @@ -87,11 +92,14 @@ func readGlobalConfig(c *Config, confFile string) error { // bind with flags (command line options) // see https://github.com/spf13/viper#working-with-flags - fd, _ := os.Open(*cFile) - defer fd.Close() + fd, _ = os.Open(*cFile) + defer func() { + if fd != nil { + fd.Close() + } + }() // Decode config file content and save it in a first variable - fCfg := FileConfig{} if err := json.NewDecoder(fd).Decode(&fCfg); err != nil { return err } @@ -106,6 +114,7 @@ func readGlobalConfig(c *Config, confFile string) error { } // Support environment variables (IOW ${MY_ENV_VAR} syntax) in agent-config.json +resVars: vars := []*string{ &c.FileConf.LogsDir, &c.FileConf.WebAppDir,