diff options
author | Niall Sheridan <nsheridan@gmail.com> | 2016-05-28 19:59:04 +0100 |
---|---|---|
committer | Niall Sheridan <nsheridan@gmail.com> | 2016-05-29 00:14:34 +0100 |
commit | 369c103c58ada110e0f48ae864d2cec9a6e435f4 (patch) | |
tree | 31d90b62531013de7ca1ce819e5fbf777448560c /cmd/cashier/config.go | |
parent | 054e32ed3ab3d4102c9447ed0089387206587ed2 (diff) |
Use a simple config file for configuring the client.
Diffstat (limited to 'cmd/cashier/config.go')
-rw-r--r-- | cmd/cashier/config.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/cmd/cashier/config.go b/cmd/cashier/config.go new file mode 100644 index 0000000..b6e583a --- /dev/null +++ b/cmd/cashier/config.go @@ -0,0 +1,33 @@ +package main + +import ( + "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"` +} + +func setDefaults() { + viper.SetDefault("ca", "http://localhost:10000") + viper.SetDefault("key_type", "rsa") + viper.SetDefault("key_size", 2048) + viper.SetDefault("validity", "24h") +} + +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 +} |