packer-cn/builder/vmware/step_prepare_tools.go

34 lines
901 B
Go

package vmware
import (
"fmt"
"github.com/mitchellh/multistep"
"os"
)
type stepPrepareTools struct{}
func (*stepPrepareTools) Run(state map[string]interface{}) multistep.StepAction {
config := state["config"].(*config)
driver := state["driver"].(Driver)
if config.ToolsUploadFlavor == "" {
return multistep.ActionContinue
}
path := driver.ToolsIsoPath(config.ToolsUploadFlavor)
if _, err := os.Stat(path); err != nil {
state["error"] = fmt.Errorf(
"Couldn't find VMware tools for '%s'! VMware often downloads these\n"+
"tools on-demand. However, to do this, you need to create a fake VM\n"+
"of the proper type then click the 'install tools' option in the\n"+
"VMware GUI.", config.ToolsUploadFlavor)
return multistep.ActionHalt
}
state["tools_upload_source"] = path
return multistep.ActionContinue
}
func (*stepPrepareTools) Cleanup(map[string]interface{}) {}