builder/virtualbox: search VBOX_MSI_INSTALL_PATH [GH-1337]

This commit is contained in:
Mitchell Hashimoto 2014-09-03 21:08:57 -07:00
parent f0bc4fd0b7
commit c0f9dbde41
2 changed files with 23 additions and 9 deletions

View File

@ -33,6 +33,8 @@ BUG FIXES:
* builder/parallels/all: Added some navigation keys [GH-1442]
* builder/qemu: If headless, sdl display won't be used. [GH-1395]
* builder/qemu: Use `512M` as `-m` default. [GH-1444]
* builder/virtualbox/all: Search `VBOX_MSI_INSTALL_PATH` for path to
`VBoxManage` on Windows. [GH-1337]
* builder/virtualbox/all: Seed RNG to avoid same ports. [GH-1386]
* builder/virtualbox/all: Better error if guest additions URL couldn't be
detected. [GH-1439]

View File

@ -55,15 +55,16 @@ func NewDriver() (Driver, error) {
// On Windows, we check VBOX_INSTALL_PATH env var for the path
if runtime.GOOS == "windows" {
if installPath := os.Getenv("VBOX_INSTALL_PATH"); installPath != "" {
log.Printf("[DEBUG] builder/virtualbox: VBOX_INSTALL_PATH: %s",
installPath)
for _, path := range strings.Split(installPath, ";") {
path = filepath.Join(path, "VBoxManage.exe")
if _, err := os.Stat(path); err == nil {
vboxmanagePath = path
break
vars := []string{"VBOX_INSTALL_PATH", "VBOX_MSI_INSTALL_PATH"}
for _, key := range vars {
value := os.Getenv(key)
if value != "" {
log.Printf(
"[DEBUG] builder/virtualbox: %s = %s", key, value)
vboxmanagePath = findVBoxManageWindows(value)
}
if vboxmanagePath != "" {
break
}
}
}
@ -84,3 +85,14 @@ func NewDriver() (Driver, error) {
return driver, nil
}
func findVBoxManageWindows(paths string) string {
for _, path := range strings.Split(paths, ";") {
path = filepath.Join(path, "VBoxManage.exe")
if _, err := os.Stat(path); err == nil {
return path
}
}
return ""
}