diff options
author | scottmg@chromium.org <scottmg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-22 09:31:40 +0000 |
---|---|---|
committer | scottmg@chromium.org <scottmg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-22 09:31:40 +0000 |
commit | 7601617233b79787ca18a12cc37b4fc3d28e0fb8 (patch) | |
tree | c692eb951b9f8e96c9033e9cae107df5019cc5b8 /tools/find_depot_tools.py | |
parent | 7bc49bd9d4db4d375b1994abfaec486eb5ace63a (diff) | |
download | chromium_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.py | 13 |
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 |