package vmware import ( "fmt" "github.com/mitchellh/multistep" "github.com/mitchellh/packer/packer" ) // This step compacts the virtual disks for the VM. // // Uses: // config *config // driver Driver // ui packer.Ui // // Produces: // type stepCompactDisk struct{} func (stepCompactDisk) Run(state map[string]interface{}) multistep.StepAction { config := state["config"].(*config) driver := state["driver"].(Driver) ui := state["ui"].(packer.Ui) ui.Say("Compacting the disk image") if err := driver.CompactDisk(config.FullDiskPath); err != nil { err := fmt.Errorf("Error compacting disk: %s", err) state["error"] = err ui.Error(err.Error()) return multistep.ActionHalt } return multistep.ActionContinue } func (stepCompactDisk) Cleanup(map[string]interface{}) {}