2019-05-31 08:27:41 -04:00
|
|
|
//go:generate struct-markdown
|
|
|
|
|
2014-05-09 20:24:19 -04:00
|
|
|
package common
|
|
|
|
|
|
|
|
import (
|
2017-04-04 16:39:01 -04:00
|
|
|
"github.com/hashicorp/packer/template/interpolate"
|
2014-05-09 20:24:19 -04:00
|
|
|
)
|
|
|
|
|
|
|
|
type ToolsConfig struct {
|
2019-05-28 11:50:58 -04:00
|
|
|
// The flavor of the VMware Tools ISO to
|
|
|
|
// upload into the VM. Valid values are darwin, linux, and windows. By
|
|
|
|
// default, this is empty, which means VMware tools won't be uploaded.
|
|
|
|
ToolsUploadFlavor string `mapstructure:"tools_upload_flavor" required:"false"`
|
|
|
|
// The path in the VM to upload the
|
|
|
|
// VMware tools. This only takes effect if tools_upload_flavor is non-empty.
|
|
|
|
// This is a configuration
|
|
|
|
// template that has a single
|
|
|
|
// valid variable: Flavor, which will be the value of tools_upload_flavor.
|
|
|
|
// By default the upload path is set to {{.Flavor}}.iso. This setting is not
|
|
|
|
// used when remote_type is esx5.
|
|
|
|
ToolsUploadPath string `mapstructure:"tools_upload_path" required:"false"`
|
2014-05-09 20:24:19 -04:00
|
|
|
}
|
|
|
|
|
2015-05-27 17:16:28 -04:00
|
|
|
func (c *ToolsConfig) Prepare(ctx *interpolate.Context) []error {
|
2014-05-09 20:24:19 -04:00
|
|
|
if c.ToolsUploadPath == "" {
|
|
|
|
c.ToolsUploadPath = "{{ .Flavor }}.iso"
|
|
|
|
}
|
|
|
|
|
2015-05-27 17:16:28 -04:00
|
|
|
return nil
|
2014-05-09 20:24:19 -04:00
|
|
|
}
|