From 7601617233b79787ca18a12cc37b4fc3d28e0fb8 Mon Sep 17 00:00:00 2001 From: "scottmg@chromium.org" Date: Wed, 22 Jan 2014 09:31:40 +0000 Subject: 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 --- tools/find_depot_tools.py | 13 +++++++++---- 1 file 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 -- cgit v1.1