summaryrefslogtreecommitdiffstats
path: root/tools/find_depot_tools.py
diff options
context:
space:
mode:
authorscottmg@chromium.org <scottmg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-22 09:31:40 +0000
committerscottmg@chromium.org <scottmg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-22 09:31:40 +0000
commit7601617233b79787ca18a12cc37b4fc3d28e0fb8 (patch)
treec692eb951b9f8e96c9033e9cae107df5019cc5b8 /tools/find_depot_tools.py
parent7bc49bd9d4db4d375b1994abfaec486eb5ace63a (diff)
downloadchromium_src-7601617233b79787ca18a12cc37b4fc3d28e0fb8.zip
chromium_src-7601617233b79787ca18a12cc37b4fc3d28e0fb8.tar.gz
chromium_src-7601617233b79787ca18a12cc37b4fc3d28e0fb8.tar.bz2
Check that directory named depot_tools appears to be full checkout
When running recipes on build slaves, the PYTHONPATH has many (many!) things injected, one of which includes a partial checkout of depot_tools. As a result, find_depot_tools got confused as it thought it had found the correct directory while searching, but then failed to import breakpad. This makes the search at least confirm there's a file named breakpad.py present so the later import will probably succeed. R=phajdan.jr@chromium.org Review URL: https://codereview.chromium.org/137203009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246259 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/find_depot_tools.py')
-rw-r--r--tools/find_depot_tools.py13
1 files changed, 9 insertions, 4 deletions
diff --git a/tools/find_depot_tools.py b/tools/find_depot_tools.py
index 0fa151b..32c4d19 100644
--- a/tools/find_depot_tools.py
+++ b/tools/find_depot_tools.py
@@ -10,23 +10,28 @@ imports breakpad.
import os
import sys
+
+def IsRealDepotTools(path):
+ return os.path.isfile(os.path.join(path, 'breakpad.py'))
+
+
def add_depot_tools_to_path():
"""Search for depot_tools and add it to sys.path."""
# First look if depot_tools is already in PYTHONPATH.
for i in sys.path:
- if i.rstrip(os.sep).endswith('depot_tools'):
+ if i.rstrip(os.sep).endswith('depot_tools') and IsRealDepotTools(i):
return i
# Then look if depot_tools is in PATH, common case.
for i in os.environ['PATH'].split(os.pathsep):
- if i.rstrip(os.sep).endswith('depot_tools'):
+ if i.rstrip(os.sep).endswith('depot_tools') and IsRealDepotTools(i):
sys.path.append(i.rstrip(os.sep))
return i
# Rare case, it's not even in PATH, look upward up to root.
root_dir = os.path.dirname(os.path.abspath(__file__))
previous_dir = os.path.abspath(__file__)
while root_dir and root_dir != previous_dir:
- if os.path.isfile(os.path.join(root_dir, 'depot_tools', 'breakpad.py')):
- i = os.path.join(root_dir, 'depot_tools')
+ i = os.path.join(root_dir, 'depot_tools')
+ if IsRealDepotTools(i):
sys.path.append(i)
return i
previous_dir = root_dir