Skip to content
Snippets Groups Projects
Commit 9f8f0194 authored by Niall Sheridan's avatar Niall Sheridan
Browse files

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.
parent 12417f0d
Branches
Tags
No related merge requests found
package client
import (
"os"
"github.com/mitchellh/go-homedir"
"github.com/spf13/pflag"
"github.com/spf13/viper"
......@@ -28,11 +30,13 @@ func setDefaults() {
// ReadConfig reads the client configuration from a file into a Config struct.
func ReadConfig(path string) (*Config, error) {
setDefaults()
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 {
return nil, err
......
......@@ -59,9 +59,11 @@ func pemBlockForKey(priv interface{}) (*pem.Block, error) {
// Default is "rsa"
func KeyType(keyType string) KeyOption {
return func(o *options) {
if keyType != "" {
o.keytype = keyType
}
}
}
// KeySize sets the size of the key in bits.
// RSA keys must be a minimum of 1024 bits. The default is 2048 bits.
......
......@@ -36,17 +36,17 @@ func main() {
c, err := client.ReadConfig(*cfg)
if err != nil {
log.Printf("Error parsing config file: %v\n", err)
}
fmt.Printf("Your browser has been opened to visit %s\n", c.CA)
if err := browser.OpenURL(c.CA); err != nil {
fmt.Println("Error launching web browser. Go to the link in your web browser")
log.Printf("Configuration error: %v\n", err)
}
fmt.Println("Generating new key pair")
priv, pub, err := client.GenerateKey(client.KeyType(c.Keytype), client.KeySize(c.Keysize))
if err != nil {
log.Fatalln("Error generating key pair: ", err)
}
fmt.Printf("Your browser has been opened to visit %s\n", c.CA)
if err := browser.OpenURL(c.CA); err != nil {
fmt.Println("Error launching web browser. Go to the link in your web browser")
}
fmt.Print("Enter token: ")
var token string
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment