github.com/tonnydourado/packer@v0.6.1-0.20140701134019-5d0cd9676a37/builder/vmware/common/vmx_config.go (about)

     1  package common
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/mitchellh/packer/packer"
     7  )
     8  
     9  type VMXConfig struct {
    10  	VMXData     map[string]string `mapstructure:"vmx_data"`
    11  	VMXDataPost map[string]string `mapstructure:"vmx_data_post"`
    12  }
    13  
    14  func (c *VMXConfig) Prepare(t *packer.ConfigTemplate) []error {
    15  	errs := make([]error, 0)
    16  	newVMXData := make(map[string]string)
    17  	for k, v := range c.VMXData {
    18  		var err error
    19  		k, err = t.Process(k, nil)
    20  		if err != nil {
    21  			errs = append(errs,
    22  				fmt.Errorf("Error processing vmx_data key %s: %s", k, err))
    23  			continue
    24  		}
    25  
    26  		v, err = t.Process(v, nil)
    27  		if err != nil {
    28  			errs = append(errs,
    29  				fmt.Errorf("Error processing vmx_data value '%s': %s", v, err))
    30  			continue
    31  		}
    32  
    33  		newVMXData[k] = v
    34  	}
    35  	c.VMXData = newVMXData
    36  
    37  	newVMXDataPost := make(map[string]string)
    38  	for k, v := range c.VMXDataPost {
    39  		var err error
    40  		k, err = t.Process(k, nil)
    41  		if err != nil {
    42  			errs = append(errs,
    43  				fmt.Errorf("Error processing vmx_post_data key %s: %s", k, err))
    44  			continue
    45  		}
    46  
    47  		v, err = t.Process(v, nil)
    48  		if err != nil {
    49  			errs = append(errs,
    50  				fmt.Errorf("Error processing vmx_post_data value '%s': %s", v, err))
    51  			continue
    52  		}
    53  
    54  		newVMXDataPost[k] = v
    55  	}
    56  	c.VMXDataPost = newVMXDataPost
    57  
    58  	return errs
    59  }