From 369c103c58ada110e0f48ae864d2cec9a6e435f4 Mon Sep 17 00:00:00 2001 From: Niall Sheridan Date: Sat, 28 May 2016 19:59:04 +0100 Subject: Use a simple config file for configuring the client. --- cmd/cashier/config.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 cmd/cashier/config.go (limited to 'cmd/cashier/config.go') 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 +} -- cgit v1.2.3