commit 943289dbcb5248e5c703789bb30732986f981135
Author: Damian Johnson <atagar(a)torproject.org>
Date: Mon Mar 30 19:35:21 2015 -0700
Use find_executable() to determine if commands exist
Turns out there's no need to crawl through the PATH. Python already has a
builtin that does exactly what we want.
---
stem/util/system.py | 13 ++-----------
1 file changed, 2 insertions(+), 11 deletions(-)
diff --git a/stem/util/system.py b/stem/util/system.py
index f2d1bc8..fd62b9d 100644
--- a/stem/util/system.py
+++ b/stem/util/system.py
@@ -44,6 +44,7 @@ best-effort, providing **None** if the lookup fails.
import ctypes
import ctypes.util
+import distutils.spawn
import mimetypes
import os
import platform
@@ -194,17 +195,7 @@ def is_available(command, cached=True):
elif cached and command in CMD_AVAILABLE_CACHE:
return CMD_AVAILABLE_CACHE[command]
else:
- cmd_exists = False
- for path in os.environ['PATH'].split(os.pathsep):
- cmd_path = os.path.join(path, command)
-
- if is_windows():
- cmd_path += '.exe'
-
- if os.path.exists(cmd_path) and os.access(cmd_path, os.X_OK):
- cmd_exists = True
- break
-
+ cmd_exists = distutils.spawn.find_executable(command) is not None
CMD_AVAILABLE_CACHE[command] = cmd_exists
return cmd_exists