diff options
Diffstat (limited to 'vendor/github.com/hashicorp/terraform/helper/config/decode.go')
-rw-r--r-- | vendor/github.com/hashicorp/terraform/helper/config/decode.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/vendor/github.com/hashicorp/terraform/helper/config/decode.go b/vendor/github.com/hashicorp/terraform/helper/config/decode.go new file mode 100644 index 0000000..f470c9b --- /dev/null +++ b/vendor/github.com/hashicorp/terraform/helper/config/decode.go | |||
@@ -0,0 +1,28 @@ | |||
1 | package config | ||
2 | |||
3 | import ( | ||
4 | "github.com/mitchellh/mapstructure" | ||
5 | ) | ||
6 | |||
7 | func Decode(target interface{}, raws ...interface{}) (*mapstructure.Metadata, error) { | ||
8 | var md mapstructure.Metadata | ||
9 | decoderConfig := &mapstructure.DecoderConfig{ | ||
10 | Metadata: &md, | ||
11 | Result: target, | ||
12 | WeaklyTypedInput: true, | ||
13 | } | ||
14 | |||
15 | decoder, err := mapstructure.NewDecoder(decoderConfig) | ||
16 | if err != nil { | ||
17 | return nil, err | ||
18 | } | ||
19 | |||
20 | for _, raw := range raws { | ||
21 | err := decoder.Decode(raw) | ||
22 | if err != nil { | ||
23 | return nil, err | ||
24 | } | ||
25 | } | ||
26 | |||
27 | return &md, nil | ||
28 | } | ||