From 9f8f0194a3c21e640a5b917f86bf204c014d730d Mon Sep 17 00:00:00 2001 From: Niall Sheridan Date: Wed, 8 Aug 2018 21:52:34 +0100 Subject: 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. --- client/config.go | 12 ++++++++---- client/keys.go | 4 +++- 2 files changed, 11 insertions(+), 5 deletions(-) (limited to 'client') 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 { diff --git a/client/keys.go b/client/keys.go index b488ea2..f573136 100644 --- a/client/keys.go +++ b/client/keys.go @@ -59,7 +59,9 @@ func pemBlockForKey(priv interface{}) (*pem.Block, error) { // Default is "rsa" func KeyType(keyType string) KeyOption { return func(o *options) { - o.keytype = keyType + if keyType != "" { + o.keytype = keyType + } } } -- cgit v1.2.3