Index: git-cl-upload-hook |
=================================================================== |
--- git-cl-upload-hook (revision 51063) |
+++ git-cl-upload-hook (working copy) |
@@ -5,18 +5,30 @@ |
import os |
import sys |
+from subprocess import Popen, PIPE |
# Try locating depot_tools from the user's PATH. |
depot_tools_path = None |
+ |
+# First parse PATH if there's a "depot_tools" inside |
for path in os.environ.get("PATH").split(os.pathsep): |
- if not path.endswith("depot_tools"): |
+ if not path.endswith("depot_tools") and not path.endswith("depot_tools/"): |
continue |
depot_tools_path = path |
break |
+# If depot_tools dir is not called depot_tools, or other weirdness |
+if not depot_tools_path: |
+ # Grab a `which gclient', which gives first match |
+ # `which' also uses PATH, but is not restricted to specific directory name |
+ path = Popen(["which", "gclient"], stdout=PIPE).communicate()[0] |
+ if path: |
+ depot_tools_path = path.replace("/gclient","") |
+ |
# If we found depot_tools, add it to the script's import path. |
+# Use realpath to normalize the actual path |
if depot_tools_path: |
- sys.path.append(depot_tools_path) |
+ sys.path.append(os.path.realpath(depot_tools_path)) |
else: |
print "ERROR: Could not find depot_tools in your PATH." |
print "ERROR: Please add it to your PATH and try again." |