github.com/askholme/packer@v0.7.2-0.20140924152349-70d9566a6852/builder/vmware/common/tools_config.go (about) 1 package common 2 3 import ( 4 "fmt" 5 "text/template" 6 7 "github.com/mitchellh/packer/packer" 8 ) 9 10 type ToolsConfig struct { 11 ToolsUploadFlavor string `mapstructure:"tools_upload_flavor"` 12 ToolsUploadPath string `mapstructure:"tools_upload_path"` 13 } 14 15 func (c *ToolsConfig) Prepare(t *packer.ConfigTemplate) []error { 16 if c.ToolsUploadPath == "" { 17 c.ToolsUploadPath = "{{ .Flavor }}.iso" 18 } 19 20 templates := map[string]*string{ 21 "tools_upload_flavor": &c.ToolsUploadFlavor, 22 } 23 24 var err error 25 errs := make([]error, 0) 26 for n, ptr := range templates { 27 *ptr, err = t.Process(*ptr, nil) 28 if err != nil { 29 errs = append(errs, fmt.Errorf("Error processing %s: %s", n, err)) 30 } 31 } 32 33 if _, err := template.New("path").Parse(c.ToolsUploadPath); err != nil { 34 errs = append(errs, fmt.Errorf("tools_upload_path invalid: %s", err)) 35 } 36 37 return errs 38 }