github.phpd.cn/hashicorp/packer@v1.3.2/builder/vmware/common/driver_player6_windows.go (about) 1 // +build windows 2 3 package common 4 5 import ( 6 "fmt" 7 "log" 8 "regexp" 9 "syscall" 10 ) 11 12 func playerVerifyVersion(version string) error { 13 key := `SOFTWARE\Wow6432Node\VMware, Inc.\VMware Player` 14 subkey := "ProductVersion" 15 productVersion, err := readRegString(syscall.HKEY_LOCAL_MACHINE, key, subkey) 16 if err != nil { 17 log.Printf(`Unable to read registry key %s\%s`, key, subkey) 18 key = `SOFTWARE\VMware, Inc.\VMware Player` 19 productVersion, err = readRegString(syscall.HKEY_LOCAL_MACHINE, key, subkey) 20 if err != nil { 21 log.Printf(`Unable to read registry key %s\%s`, key, subkey) 22 return err 23 } 24 } 25 26 versionRe := regexp.MustCompile(`^(\d+)\.`) 27 matches := versionRe.FindStringSubmatch(productVersion) 28 if matches == nil { 29 return fmt.Errorf( 30 `Could not find a VMware Player version in registry key %s\%s: '%s'`, key, subkey, productVersion) 31 } 32 log.Printf("Detected VMware Player version: %s", matches[1]) 33 34 return compareVersions(matches[1], version, "Player") 35 }