From 591aa261d17e60619708b48b312b5db6ed64df10 Mon Sep 17 00:00:00 2001 From: Niall Sheridan Date: Sun, 29 May 2016 02:13:00 +0100 Subject: Switch from json to hcl configs This is backward-compatible with the JSON config format - this is a non-breaking change. HCL treats config blocks as repeated fields so the config has to be unmarshalled into a struct comprised of []Server, []Auth, []SSH first. --- .../github.com/hashicorp/go-multierror/flatten.go | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 vendor/github.com/hashicorp/go-multierror/flatten.go (limited to 'vendor/github.com/hashicorp/go-multierror/flatten.go') diff --git a/vendor/github.com/hashicorp/go-multierror/flatten.go b/vendor/github.com/hashicorp/go-multierror/flatten.go new file mode 100644 index 0000000..aab8e9a --- /dev/null +++ b/vendor/github.com/hashicorp/go-multierror/flatten.go @@ -0,0 +1,26 @@ +package multierror + +// Flatten flattens the given error, merging any *Errors together into +// a single *Error. +func Flatten(err error) error { + // If it isn't an *Error, just return the error as-is + if _, ok := err.(*Error); !ok { + return err + } + + // Otherwise, make the result and flatten away! + flatErr := new(Error) + flatten(err, flatErr) + return flatErr +} + +func flatten(err error, flatErr *Error) { + switch err := err.(type) { + case *Error: + for _, e := range err.Errors { + flatten(e, flatErr) + } + default: + flatErr.Errors = append(flatErr.Errors, err) + } +} -- cgit v1.2.3