From 0af43a29b7cabb6710cd1cb335785ff60dbf758f Mon Sep 17 00:00:00 2001 From: Niall Sheridan Date: Sat, 3 Sep 2016 19:14:13 +0100 Subject: Move signing & agent logic out of the main package --- cmd/cashier/client/config.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 cmd/cashier/client/config.go (limited to 'cmd/cashier/client/config.go') diff --git a/cmd/cashier/client/config.go b/cmd/cashier/client/config.go new file mode 100644 index 0000000..d4defef --- /dev/null +++ b/cmd/cashier/client/config.go @@ -0,0 +1,36 @@ +package client + +import ( + "github.com/spf13/pflag" + "github.com/spf13/viper" +) + +type Config struct { + CA string `mapstructure:"ca"` + Keytype string `mapstructure:"key_type"` + Keysize int `mapstructure:"key_size"` + Validity string `mapstructure:"validity"` + ValidateTLSCertificate bool `mapstructure:"validate_tls_certificate"` +} + +func setDefaults() { + viper.BindPFlag("ca", pflag.Lookup("ca")) + viper.BindPFlag("key_type", pflag.Lookup("key_type")) + viper.BindPFlag("key_size", pflag.Lookup("key_size")) + viper.BindPFlag("validity", pflag.Lookup("validity")) + viper.SetDefault("validateTLSCertificate", true) +} + +func ReadConfig(path string) (*Config, error) { + setDefaults() + viper.SetConfigFile(path) + viper.SetConfigType("hcl") + if err := viper.ReadInConfig(); err != nil { + return nil, err + } + c := &Config{} + if err := viper.Unmarshal(c); err != nil { + return nil, err + } + return c, nil +} -- cgit v1.2.3