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

Unified Diff: recipe_modules/git/api.py

Issue 1751003002: Fix recipe module git to use package_resouce. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: fix expectations Created 4 years, 10 months 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 | « no previous file | recipe_modules/git/example.expected/platform_win.json » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: recipe_modules/git/api.py
diff --git a/recipe_modules/git/api.py b/recipe_modules/git/api.py
index e8003dc666c9e7c2e8e554ec544bd50cc3035064..d2d84f972ba4d7c50e36d9cf4f700059d68b317e 100644
--- a/recipe_modules/git/api.py
+++ b/recipe_modules/git/api.py
@@ -10,6 +10,10 @@ from recipe_engine import recipe_api
class GitApi(recipe_api.RecipeApi):
_GIT_HASH_RE = re.compile('[0-9a-f]{40}', re.IGNORECASE)
+ def __init__(self, *args, **kwargs):
+ super(GitApi, self).__init__(*args, **kwargs)
+ self.initialized_win_git = False
+
def __call__(self, *args, **kwargs):
"""Return a git command step."""
name = kwargs.pop('name', 'git '+args[0])
@@ -18,7 +22,8 @@ class GitApi(recipe_api.RecipeApi):
kwargs.setdefault('cwd', self.m.path['checkout'])
git_cmd = ['git']
if self.m.platform.is_win:
- git_cmd = [self.m.path['depot_tools'].join('git.bat')]
+ self.ensure_win_git_tooling()
+ git_cmd = [self.package_resource('git.bat')]
options = kwargs.pop('git_config_options', {})
for k, v in sorted(options.iteritems()):
git_cmd.extend(['-c', '%s=%s' % (k, v)])
@@ -32,6 +37,17 @@ class GitApi(recipe_api.RecipeApi):
else:
return f.result
+ def ensure_win_git_tooling(self):
+ """Ensures that depot_tools/git.bat actually exists."""
+ if not self.m.platform.is_win or self.initialized_win_git:
+ return
+ self.m.step(
+ 'ensure git tooling on windows',
+ [self.package_resource('bootstrap', 'win', 'win_tools.bat')],
+ infra_step=True,
+ cwd=self.package_resource())
+ self.initialized_win_git = True
+
def fetch_tags(self, remote_name=None, **kwargs):
"""Fetches all tags from the remote."""
kwargs.setdefault('name', 'git fetch tags')
@@ -172,8 +188,8 @@ class GitApi(recipe_api.RecipeApi):
remote_name = 'origin'
if self.m.platform.is_win:
- git_setup_args += ['--git_cmd_path',
- self.m.path['depot_tools'].join('git.bat')]
+ self.ensure_win_git_tooling()
+ git_setup_args += ['--git_cmd_path', self.package_resource('git.bat')]
step_suffix = '' if step_suffix is None else ' (%s)' % step_suffix
self.m.python(
« no previous file with comments | « no previous file | recipe_modules/git/example.expected/platform_win.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698