From 31bdb4853c6d5aa69462c6e03f07da0635791ac5 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Wed, 27 May 2015 12:59:14 -0700 Subject: [PATCH] builder/null: interpolations --- builder/null/config.go | 38 +++++++++++--------------------------- 1 file changed, 11 insertions(+), 27 deletions(-) diff --git a/builder/null/config.go b/builder/null/config.go index 4823df8ae..7665aec51 100644 --- a/builder/null/config.go +++ b/builder/null/config.go @@ -3,7 +3,9 @@ package null import ( "fmt" "github.com/mitchellh/packer/common" + "github.com/mitchellh/packer/helper/config" "github.com/mitchellh/packer/packer" + "github.com/mitchellh/packer/template/interpolate" ) type Config struct { @@ -14,46 +16,28 @@ type Config struct { SSHUsername string `mapstructure:"ssh_username"` SSHPassword string `mapstructure:"ssh_password"` SSHPrivateKeyFile string `mapstructure:"ssh_private_key_file"` - - tpl *packer.ConfigTemplate } func NewConfig(raws ...interface{}) (*Config, []string, error) { c := new(Config) - md, err := common.DecodeConfig(c, raws...) - if err != nil { - return nil, nil, err - } - c.tpl, err = packer.NewConfigTemplate() + err := config.Decode(&c, &config.DecodeOpts{ + Interpolate: true, + InterpolateFilter: &interpolate.RenderFilter{ + Exclude: []string{ + "run_command", + }, + }, + }, raws...) if err != nil { return nil, nil, err } - c.tpl.UserVars = c.PackerUserVars - if c.Port == 0 { c.Port = 22 } - errs := common.CheckUnusedConfig(md) - - templates := map[string]*string{ - "host": &c.Host, - "ssh_username": &c.SSHUsername, - "ssh_password": &c.SSHPassword, - "ssh_private_key_file": &c.SSHPrivateKeyFile, - } - - for n, ptr := range templates { - var err error - *ptr, err = c.tpl.Process(*ptr, nil) - if err != nil { - errs = packer.MultiErrorAppend( - errs, fmt.Errorf("Error processing %s: %s", n, err)) - } - } - + var errs *packer.MultiError if c.Host == "" { errs = packer.MultiErrorAppend(errs, fmt.Errorf("host must be specified"))