package vmware import ( "github.com/mitchellh/multistep" "github.com/mitchellh/packer/packer" "os" "fmt" ) type stepUploadTools struct{} func (*stepUploadTools) Run(state map[string]interface{}) multistep.StepAction { comm := state["communicator"].(packer.Communicator) ui := state["ui"].(packer.Ui) driver := state["driver"].(Driver) ui.Say("Uploading the VMware Tools.") f, err := os.Open(driver.ToolsIsoPath()) if err != nil { state["error"] = fmt.Errorf("Error opening VMware Tools ISO: %s", err) return multistep.ActionHalt } defer f.Close() if err := comm.Upload("/tmp/linux.iso", f); err != nil { state["error"] = fmt.Errorf("Error uploading VMware Tools: %s", err) return multistep.ActionHalt } return multistep.ActionContinue } func (*stepUploadTools) Cleanup(map[string]interface{}) {}