add support for consul
diff --git a/viper.go b/viper.go
index b065a08..d4e7fdc 100644
--- a/viper.go
+++ b/viper.go
@@ -523,17 +523,6 @@
}
func getRemoteConfig(provider *remoteProvider) (map[string]interface{}, error) {
- switch provider.provider {
- case "etcd":
- return getEtcdConfig(provider)
- case "consul":
- // not implemented yet
-
- }
- return config, nil
-}
-
-func getEtcdConfig(provider *remoteProvider) (map[string]interface{}, error) {
var cm crypt.ConfigManager
var err error
@@ -543,9 +532,17 @@
if err != nil {
return nil, err
}
- cm, err = crypt.NewEtcdConfigManager([]string{provider.endpoint}, kr)
+ if provider.provider == "etcd" {
+ cm, err = crypt.NewEtcdConfigManager([]string{provider.endpoint}, kr)
+ } else {
+ cm, err = crypt.NewConsulConfigManager([]string{provider.endpoint}, kr)
+ }
} else {
- cm, err = crypt.NewStandardEtcdConfigManager([]string{provider.endpoint})
+ if provider.provider == "etcd" {
+ cm, err = crypt.NewStandardEtcdConfigManager([]string{provider.endpoint})
+ } else {
+ cm, err = crypt.NewStandardConsulConfigManager([]string{provider.endpoint})
+ }
}
if err != nil {
return nil, err