Merge pull request #4906 from hashicorp/jsonunmarshal

use json unmarshal instead of json decoder
This commit is contained in:
Matthew Hooker 2017-05-19 12:04:19 -07:00 committed by GitHub
commit b75367204f
1 changed files with 4 additions and 2 deletions

View File

@ -264,13 +264,15 @@ func (r *rawTemplate) parsePostProcessor(
func Parse(r io.Reader) (*Template, error) {
// Create a buffer to copy what we read
var buf bytes.Buffer
r = io.TeeReader(r, &buf)
if _, err := buf.ReadFrom(r); err != nil {
return nil, err
}
// First, decode the object into an interface{}. We do this instead of
// the rawTemplate directly because we'd rather use mapstructure to
// decode since it has richer errors.
var raw interface{}
if err := json.NewDecoder(r).Decode(&raw); err != nil {
if err := json.Unmarshal(buf.Bytes(), &raw); err != nil {
return nil, err
}