Commit 5c2f2a67 authored by tandrii@chromium.org's avatar tandrii@chromium.org

Fix recipe module git to use package_resouce.

TBR=phajdan.jr@chromium.org,martiniss@chromium.org
BUG=590806

Review URL: https://codereview.chromium.org/1751003002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@299027 0039d316-1c4b-4281-b951-d872f2087c98
parent 70a43af9
...@@ -10,6 +10,10 @@ from recipe_engine import recipe_api ...@@ -10,6 +10,10 @@ from recipe_engine import recipe_api
class GitApi(recipe_api.RecipeApi): class GitApi(recipe_api.RecipeApi):
_GIT_HASH_RE = re.compile('[0-9a-f]{40}', re.IGNORECASE) _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): def __call__(self, *args, **kwargs):
"""Return a git command step.""" """Return a git command step."""
name = kwargs.pop('name', 'git '+args[0]) name = kwargs.pop('name', 'git '+args[0])
...@@ -18,7 +22,8 @@ class GitApi(recipe_api.RecipeApi): ...@@ -18,7 +22,8 @@ class GitApi(recipe_api.RecipeApi):
kwargs.setdefault('cwd', self.m.path['checkout']) kwargs.setdefault('cwd', self.m.path['checkout'])
git_cmd = ['git'] git_cmd = ['git']
if self.m.platform.is_win: 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', {}) options = kwargs.pop('git_config_options', {})
for k, v in sorted(options.iteritems()): for k, v in sorted(options.iteritems()):
git_cmd.extend(['-c', '%s=%s' % (k, v)]) git_cmd.extend(['-c', '%s=%s' % (k, v)])
...@@ -32,6 +37,17 @@ class GitApi(recipe_api.RecipeApi): ...@@ -32,6 +37,17 @@ class GitApi(recipe_api.RecipeApi):
else: else:
return f.result 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): def fetch_tags(self, remote_name=None, **kwargs):
"""Fetches all tags from the remote.""" """Fetches all tags from the remote."""
kwargs.setdefault('name', 'git fetch tags') kwargs.setdefault('name', 'git fetch tags')
...@@ -172,8 +188,8 @@ class GitApi(recipe_api.RecipeApi): ...@@ -172,8 +188,8 @@ class GitApi(recipe_api.RecipeApi):
remote_name = 'origin' remote_name = 'origin'
if self.m.platform.is_win: if self.m.platform.is_win:
git_setup_args += ['--git_cmd_path', self.ensure_win_git_tooling()
self.m.path['depot_tools'].join('git.bat')] git_setup_args += ['--git_cmd_path', self.package_resource('git.bat')]
step_suffix = '' if step_suffix is None else ' (%s)' % step_suffix step_suffix = '' if step_suffix is None else ' (%s)' % step_suffix
self.m.python( self.m.python(
......
[ [
{
"cmd": [
"RECIPE_PACKAGE[depot_tools]\\bootstrap\\win\\win_tools.bat"
],
"cwd": "RECIPE_PACKAGE[depot_tools]",
"name": "ensure git tooling on windows"
},
{ {
"cmd": [ "cmd": [
"python", "python",
...@@ -9,14 +16,14 @@ ...@@ -9,14 +16,14 @@
"--url", "--url",
"https://chromium.googlesource.com/chromium/src.git", "https://chromium.googlesource.com/chromium/src.git",
"--git_cmd_path", "--git_cmd_path",
"[DEPOT_TOOLS]\\git.bat" "RECIPE_PACKAGE[depot_tools]\\git.bat"
], ],
"cwd": "[SLAVE_BUILD]", "cwd": "[SLAVE_BUILD]",
"name": "git setup" "name": "git setup"
}, },
{ {
"cmd": [ "cmd": [
"[DEPOT_TOOLS]\\git.bat", "RECIPE_PACKAGE[depot_tools]\\git.bat",
"retry", "retry",
"fetch", "fetch",
"origin", "origin",
...@@ -28,7 +35,7 @@ ...@@ -28,7 +35,7 @@
}, },
{ {
"cmd": [ "cmd": [
"[DEPOT_TOOLS]\\git.bat", "RECIPE_PACKAGE[depot_tools]\\git.bat",
"checkout", "checkout",
"-f", "-f",
"FETCH_HEAD" "FETCH_HEAD"
...@@ -38,7 +45,7 @@ ...@@ -38,7 +45,7 @@
}, },
{ {
"cmd": [ "cmd": [
"[DEPOT_TOOLS]\\git.bat", "RECIPE_PACKAGE[depot_tools]\\git.bat",
"rev-parse", "rev-parse",
"HEAD" "HEAD"
], ],
...@@ -51,7 +58,7 @@ ...@@ -51,7 +58,7 @@
}, },
{ {
"cmd": [ "cmd": [
"[DEPOT_TOOLS]\\git.bat", "RECIPE_PACKAGE[depot_tools]\\git.bat",
"clean", "clean",
"-f", "-f",
"-d", "-d",
...@@ -62,7 +69,7 @@ ...@@ -62,7 +69,7 @@
}, },
{ {
"cmd": [ "cmd": [
"[DEPOT_TOOLS]\\git.bat", "RECIPE_PACKAGE[depot_tools]\\git.bat",
"submodule", "submodule",
"sync" "sync"
], ],
...@@ -71,7 +78,7 @@ ...@@ -71,7 +78,7 @@
}, },
{ {
"cmd": [ "cmd": [
"[DEPOT_TOOLS]\\git.bat", "RECIPE_PACKAGE[depot_tools]\\git.bat",
"submodule", "submodule",
"update", "update",
"--init", "--init",
...@@ -82,7 +89,7 @@ ...@@ -82,7 +89,7 @@
}, },
{ {
"cmd": [ "cmd": [
"[DEPOT_TOOLS]\\git.bat", "RECIPE_PACKAGE[depot_tools]\\git.bat",
"-c", "-c",
"foo=bar", "foo=bar",
"count-objects", "count-objects",
...@@ -94,7 +101,7 @@ ...@@ -94,7 +101,7 @@
}, },
{ {
"cmd": [ "cmd": [
"[DEPOT_TOOLS]\\git.bat", "RECIPE_PACKAGE[depot_tools]\\git.bat",
"config", "config",
"--get", "--get",
"remote.origin.url" "remote.origin.url"
...@@ -108,7 +115,7 @@ ...@@ -108,7 +115,7 @@
}, },
{ {
"cmd": [ "cmd": [
"[DEPOT_TOOLS]\\git.bat", "RECIPE_PACKAGE[depot_tools]\\git.bat",
"show", "show",
"HEAD", "HEAD",
"--format=%at", "--format=%at",
...@@ -120,7 +127,7 @@ ...@@ -120,7 +127,7 @@
}, },
{ {
"cmd": [ "cmd": [
"[DEPOT_TOOLS]\\git.bat", "RECIPE_PACKAGE[depot_tools]\\git.bat",
"fetch", "fetch",
"origin", "origin",
"--tags" "--tags"
...@@ -130,7 +137,7 @@ ...@@ -130,7 +137,7 @@
}, },
{ {
"cmd": [ "cmd": [
"[DEPOT_TOOLS]\\git.bat", "RECIPE_PACKAGE[depot_tools]\\git.bat",
"status" "status"
], ],
"cwd": "[SLAVE_BUILD]\\src", "cwd": "[SLAVE_BUILD]\\src",
...@@ -138,7 +145,7 @@ ...@@ -138,7 +145,7 @@
}, },
{ {
"cmd": [ "cmd": [
"[DEPOT_TOOLS]\\git.bat", "RECIPE_PACKAGE[depot_tools]\\git.bat",
"status" "status"
], ],
"cwd": "[SLAVE_BUILD]\\src", "cwd": "[SLAVE_BUILD]\\src",
...@@ -146,7 +153,7 @@ ...@@ -146,7 +153,7 @@
}, },
{ {
"cmd": [ "cmd": [
"[DEPOT_TOOLS]\\git.bat", "RECIPE_PACKAGE[depot_tools]\\git.bat",
"status" "status"
], ],
"cwd": "[SLAVE_BUILD]\\src", "cwd": "[SLAVE_BUILD]\\src",
...@@ -154,7 +161,7 @@ ...@@ -154,7 +161,7 @@
}, },
{ {
"cmd": [ "cmd": [
"[DEPOT_TOOLS]\\git.bat", "RECIPE_PACKAGE[depot_tools]\\git.bat",
"rebase", "rebase",
"origin/master" "origin/master"
], ],
...@@ -163,7 +170,7 @@ ...@@ -163,7 +170,7 @@
}, },
{ {
"cmd": [ "cmd": [
"[DEPOT_TOOLS]\\git.bat", "RECIPE_PACKAGE[depot_tools]\\git.bat",
"bundle", "bundle",
"create", "create",
"[SLAVE_BUILD]\\all.bundle", "[SLAVE_BUILD]\\all.bundle",
......
[ [
{ {
"cmd": [ "cmd": [
"[DEPOT_TOOLS]\\git.bat", "RECIPE_PACKAGE[depot_tools]\\bootstrap\\win\\win_tools.bat"
],
"cwd": "RECIPE_PACKAGE[depot_tools]",
"name": "ensure git tooling on windows"
},
{
"cmd": [
"RECIPE_PACKAGE[depot_tools]\\git.bat",
"diff", "diff",
"--cached", "--cached",
"--name-only" "--name-only"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment