From 1c6af6236743aa0963d4919b5ef42627efa6aca7 Mon Sep 17 00:00:00 2001 From: Sebastien Douheret Date: Mon, 18 Sep 2017 18:44:52 +0200 Subject: [PATCH] Fix default config values. Signed-off-by: Sebastien Douheret --- README.md | 4 ++-- lib/xdsconfig/config.go | 11 ++++++++--- lib/xdsconfig/fileconfig.go | 30 +++++++++++++++--------------- 3 files changed, 25 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 77ef6e3..aadaf4c 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,7 @@ The tarball mentioned in previous section includes this file with default settin Here is the logic to determine which `agent-config.json` file will be used: 1. from command line option: `--config myConfig.json` -1. `$HOME/.xds/agent-config.json` file +1. `$HOME/.xds/agent/agent-config.json` file 1. `/agent-config.json` file 1. `/agent-config.json` file @@ -101,7 +101,7 @@ below corresponds to the default values): "xds-apikey": "1234abcezam", "syncthing": { "binDir": ".", - "home": "${HOME}/.xds/syncthing-config", + "home": "${HOME}/.xds/agent/syncthing-config", "gui-address": "http://localhost:8384", "gui-apikey": "1234abcezam", } diff --git a/lib/xdsconfig/config.go b/lib/xdsconfig/config.go index 7d762c7..854d383 100644 --- a/lib/xdsconfig/config.go +++ b/lib/xdsconfig/config.go @@ -25,7 +25,6 @@ type Config struct { // Config default values const ( DefaultAPIVersion = "1" - DefaultPort = "8010" DefaultLogLevel = "error" ) @@ -39,8 +38,14 @@ func Init(ctx *cli.Context, log *logrus.Logger) (*Config, error) { APIVersion: DefaultAPIVersion, VersionGitTag: ctx.App.Metadata["git-tag"].(string), - HTTPPort: DefaultPort, - Log: log, + HTTPPort: "8010", + FileConf: &FileConfig{ + LogsDir: "/tmp/logs", + SThgConf: &SyncThingConf{ + Home: "${HOME}/.xds/agent/syncthing-config", + }, + }, + Log: log, } // config file settings overwrite default config diff --git a/lib/xdsconfig/fileconfig.go b/lib/xdsconfig/fileconfig.go index 1ad2ea3..2358a31 100644 --- a/lib/xdsconfig/fileconfig.go +++ b/lib/xdsconfig/fileconfig.go @@ -27,7 +27,7 @@ type FileConfig struct { // getConfigFromFile reads configuration from a config file. // Order to determine which config file is used: // 1/ from command line option: "--config myConfig.json" -// 2/ $HOME/.xds/agent-config.json file +// 2/ $HOME/.xds/agent/agent-config.json file // 3/ /agent-config.json file // 4/ /agent-config.json file @@ -38,7 +38,7 @@ func updateConfigFromFile(c *Config, confFile string) (*FileConfig, error) { searchIn = append(searchIn, confFile) } if usr, err := user.Current(); err == nil { - searchIn = append(searchIn, path.Join(usr.HomeDir, ".xds", "agent-config.json")) + searchIn = append(searchIn, path.Join(usr.HomeDir, ".xds", "agent", "agent-config.json")) } cwd, err := os.Getwd() if err == nil { @@ -56,22 +56,22 @@ func updateConfigFromFile(c *Config, confFile string) (*FileConfig, error) { break } } - fCfg := FileConfig{} - if cFile == nil { - // No config file found - return &fCfg, nil - } + // Use default settings + fCfg := *c.FileConf - c.Log.Infof("Use config file: %s", *cFile) + // Read config file when existing + if cFile != nil { + c.Log.Infof("Use config file: %s", *cFile) - // TODO move on viper package to support comments in JSON and also - // bind with flags (command line options) - // see https://github.com/spf13/viper#working-with-flags + // TODO move on viper package to support comments in JSON and also + // bind with flags (command line options) + // see https://github.com/spf13/viper#working-with-flags - fd, _ := os.Open(*cFile) - defer fd.Close() - if err := json.NewDecoder(fd).Decode(&fCfg); err != nil { - return nil, err + fd, _ := os.Open(*cFile) + defer fd.Close() + if err := json.NewDecoder(fd).Decode(&fCfg); err != nil { + return nil, err + } } // Support environment variables (IOW ${MY_ENV_VAR} syntax) in agent-config.json -- 2.16.6