builder/*: extract to common the config decoding

This commit is contained in:
Mitchell Hashimoto 2013-07-19 15:00:32 -04:00
parent e84669aa37
commit 42059f9b07
3 changed files with 3 additions and 45 deletions

View File

@ -7,7 +7,6 @@ import (
"bytes" "bytes"
"errors" "errors"
"fmt" "fmt"
"github.com/mitchellh/mapstructure"
"github.com/mitchellh/multistep" "github.com/mitchellh/multistep"
"github.com/mitchellh/packer/builder/common" "github.com/mitchellh/packer/builder/common"
"github.com/mitchellh/packer/packer" "github.com/mitchellh/packer/packer"
@ -61,24 +60,11 @@ type Builder struct {
} }
func (b *Builder) Prepare(raws ...interface{}) error { func (b *Builder) Prepare(raws ...interface{}) error {
var md mapstructure.Metadata md, err := common.DecodeConfig(&b.config, raws...)
decoderConfig := &mapstructure.DecoderConfig{
Metadata: &md,
Result: &b.config,
}
decoder, err := mapstructure.NewDecoder(decoderConfig)
if err != nil { if err != nil {
return err return err
} }
for _, raw := range raws {
err := decoder.Decode(raw)
if err != nil {
return err
}
}
// Accumulate any errors // Accumulate any errors
errs := make([]error, 0) errs := make([]error, 0)

View File

@ -3,7 +3,6 @@ package virtualbox
import ( import (
"errors" "errors"
"fmt" "fmt"
"github.com/mitchellh/mapstructure"
"github.com/mitchellh/multistep" "github.com/mitchellh/multistep"
"github.com/mitchellh/packer/builder/common" "github.com/mitchellh/packer/builder/common"
"github.com/mitchellh/packer/packer" "github.com/mitchellh/packer/packer"
@ -65,24 +64,11 @@ type config struct {
} }
func (b *Builder) Prepare(raws ...interface{}) error { func (b *Builder) Prepare(raws ...interface{}) error {
var md mapstructure.Metadata md, err := common.DecodeConfig(&b.config, raws...)
decoderConfig := &mapstructure.DecoderConfig{
Metadata: &md,
Result: &b.config,
}
decoder, err := mapstructure.NewDecoder(decoderConfig)
if err != nil { if err != nil {
return err return err
} }
for _, raw := range raws {
err := decoder.Decode(raw)
if err != nil {
return err
}
}
// Accumulate any errors // Accumulate any errors
errs := make([]error, 0) errs := make([]error, 0)

View File

@ -3,7 +3,6 @@ package vmware
import ( import (
"errors" "errors"
"fmt" "fmt"
"github.com/mitchellh/mapstructure"
"github.com/mitchellh/multistep" "github.com/mitchellh/multistep"
"github.com/mitchellh/packer/builder/common" "github.com/mitchellh/packer/builder/common"
"github.com/mitchellh/packer/packer" "github.com/mitchellh/packer/packer"
@ -66,24 +65,11 @@ type config struct {
} }
func (b *Builder) Prepare(raws ...interface{}) error { func (b *Builder) Prepare(raws ...interface{}) error {
var md mapstructure.Metadata md, err := common.DecodeConfig(&b.config, raws...)
decoderConfig := &mapstructure.DecoderConfig{
Metadata: &md,
Result: &b.config,
}
decoder, err := mapstructure.NewDecoder(decoderConfig)
if err != nil { if err != nil {
return err return err
} }
for _, raw := range raws {
err := decoder.Decode(raw)
if err != nil {
return err
}
}
// Accumulate any errors // Accumulate any errors
errs := make([]error, 0) errs := make([]error, 0)