diff --git a/discovery_windows.go b/discovery_windows.go index f1cbe10..8b4065f 100644 --- a/discovery_windows.go +++ b/discovery_windows.go @@ -21,6 +21,7 @@ package phpstore import ( "os" + "os/exec" "path/filepath" "regexp" ) @@ -30,6 +31,9 @@ func (s *PHPStore) doDiscover() { systemDir := systemDir() userHomeDir := userHomeDir() + // %PATH% + s.addFromPath() + // XAMPP s.addFromDir(filepath.Join(systemDir, "xampp", "php"), nil, "XAMPP") @@ -53,12 +57,28 @@ func (s *PHPStore) doDiscover() { } } -func systemDir() string { - cwd, err := os.Getwd() +func (s *PHPStore) addFromPath() { + + phpPath, err := exec.LookPath("php.exe") if err != nil { + return + } + + dir := filepath.Dir(phpPath) + if v := s.discoverPHP(dir, "php"); v != nil { + s.addVersion(v) + } + +} + +func systemDir() string { + + val, ok := os.LookupEnv("SystemDrive") + if !ok { return "C:\\" } - return filepath.VolumeName(cwd) + "\\" + + return val + string(os.PathSeparator) } func userHomeDir() string {