diff options
author | Niall Sheridan <nsheridan@gmail.com> | 2018-08-08 21:52:34 +0100 |
---|---|---|
committer | Niall Sheridan <nsheridan@gmail.com> | 2018-08-08 22:54:43 +0100 |
commit | 9f8f0194a3c21e640a5b917f86bf204c014d730d (patch) | |
tree | 6921f64032a8eea7adeedfba156b62e2e6925969 /client/config.go | |
parent | 12417f0dddf4be86aa5b9a4cb25bf48a4e301086 (diff) |
Correct client behaviours for option handling
A config file is not required - don't error if one doesn't exist.
Don't overwrite default options with an empty string.
Diffstat (limited to 'client/config.go')
-rw-r--r-- | client/config.go | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/client/config.go b/client/config.go index eae3bfa..4536994 100644 --- a/client/config.go +++ b/client/config.go @@ -1,6 +1,8 @@ package client import ( + "os" + "github.com/mitchellh/go-homedir" "github.com/spf13/pflag" "github.com/spf13/viper" @@ -28,10 +30,12 @@ func setDefaults() { // ReadConfig reads the client configuration from a file into a Config struct. func ReadConfig(path string) (*Config, error) { setDefaults() - viper.SetConfigFile(path) - viper.SetConfigType("hcl") - if err := viper.ReadInConfig(); err != nil { - return nil, err + if _, err := os.Stat(path); err == nil { + viper.SetConfigFile(path) + viper.SetConfigType("hcl") + if err := viper.ReadInConfig(); err != nil { + return nil, err + } } c := &Config{} if err := viper.Unmarshal(c); err != nil { |