From 9e6fb5106bcb3a0f93a616198ece579c61eb129b Mon Sep 17 00:00:00 2001 From: Sebastien Douheret Date: Mon, 11 Dec 2017 17:54:04 +0100 Subject: [PATCH] Always resolved env vars in path of config structure. Signed-off-by: Sebastien Douheret --- lib/xdsconfig/configfile.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/xdsconfig/configfile.go b/lib/xdsconfig/configfile.go index c252073..500c195 100644 --- a/lib/xdsconfig/configfile.go +++ b/lib/xdsconfig/configfile.go @@ -59,6 +59,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 +81,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 +91,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 +113,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, -- 2.16.6