34 lines
901 B
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{}) {}
|