Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(178)

Unified Diff: recipe_modules/bot_update/resources/bot_update.py

Issue 2492963002: bot_update: Use 'gclient' from same repository. (Closed)
Patch Set: Also don't ignore move errors in git cache. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « git_cache.py ('k') | tests/bot_update_coverage_test.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: recipe_modules/bot_update/resources/bot_update.py
diff --git a/recipe_modules/bot_update/resources/bot_update.py b/recipe_modules/bot_update/resources/bot_update.py
index 3a5838cc6166b7d643b57b64ac787a3dc6195a02..bae22ae84fc74dbc6846798279e91f403920a784 100755
--- a/recipe_modules/bot_update/resources/bot_update.py
+++ b/recipe_modules/bot_update/resources/bot_update.py
@@ -82,6 +82,7 @@ cache_dir = r%(cache_dir)s
ATTEMPTS = 5
GIT_CACHE_PATH = path.join(DEPOT_TOOLS_DIR, 'git_cache.py')
+GCLIENT_PATH = path.join(DEPOT_TOOLS_DIR, 'gclient.py')
# If there is less than 100GB of disk space on the system, then we do
# a shallow checkout.
@@ -319,6 +320,18 @@ def ensure_no_checkout(dir_names):
print 'done'
+def call_gclient(*args, **kwargs):
+ """Run the "gclient.py" tool with the supplied arguments.
+
+ Args:
+ args: command-line arguments to pass to gclient.
+ kwargs: keyword arguments to pass to call.
+ """
+ cmd = [sys.executable, '-u', GCLIENT_PATH]
+ cmd.extend(args)
+ return call(*cmd, **kwargs)
+
+
def gclient_configure(solutions, target_os, target_os_only, git_cache_dir):
"""Should do the same thing as gclient --spec='...'."""
with codecs.open('.gclient', mode='w', encoding='utf-8') as f:
@@ -330,19 +343,19 @@ def gclient_sync(with_branch_heads, shallow, break_repo_locks):
# We just need to allocate a filename.
fd, gclient_output_file = tempfile.mkstemp(suffix='.json')
os.close(fd)
- gclient_bin = 'gclient.bat' if sys.platform.startswith('win') else 'gclient'
- cmd = [gclient_bin, 'sync', '--verbose', '--reset', '--force',
+
+ args = ['sync', '--verbose', '--reset', '--force',
'--ignore_locks', '--output-json', gclient_output_file,
'--nohooks', '--noprehooks', '--delete_unversioned_trees']
if with_branch_heads:
- cmd += ['--with_branch_heads']
+ args += ['--with_branch_heads']
if shallow:
- cmd += ['--shallow']
+ args += ['--shallow']
if break_repo_locks:
- cmd += ['--break_repo_locks']
+ args += ['--break_repo_locks']
try:
- call(*cmd, tries=1)
+ call_gclient(*args, tries=1)
except SubprocessFailed as e:
# Throw a GclientSyncFailed exception so we can catch this independently.
raise GclientSyncFailed(e.message, e.code, e.output)
@@ -354,8 +367,7 @@ def gclient_sync(with_branch_heads, shallow, break_repo_locks):
def gclient_revinfo():
- gclient_bin = 'gclient.bat' if sys.platform.startswith('win') else 'gclient'
- return call(gclient_bin, 'revinfo', '-a') or ''
+ return call_gclient('revinfo', '-a') or ''
def create_manifest():
« no previous file with comments | « git_cache.py ('k') | tests/bot_update_coverage_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698