gclient flatten: include info about DEPS files: repos and paths
This CL includes this as comments in flattened DEPS, as requested
on the bug. For automated processes using this, we should export
the data in machine-readable form outside of the DEPS file.
Bug: 756474, 570091
Change-Id: I78cd2105113f41d599e293e772e1f1ca42679f3c
Reviewed-on: https://chromium-review.googlesource.com/621726
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
diff --git a/gclient.py b/gclient.py
index 84010b3..a8e8770 100755
--- a/gclient.py
+++ b/gclient.py
@@ -1764,12 +1764,21 @@
for os_deps in self._deps_os.itervalues():
for dep in os_deps.itervalues():
- # OS-specific deps need to have their full URL resolved manually.
- assert not dep.parsed_url, (dep, dep.parsed_url)
- dep._parsed_url = dep.LateOverride(dep.url)
-
self._pin_dep(dep)
+ deps_files = set()
+ def add_deps_file(dep):
+ deps_path = os.path.join(self._client.root_dir, dep.name, dep.deps_file)
+ if not os.path.exists(deps_path):
+ return
+ assert dep.parsed_url
+ deps_files.add((dep.parsed_url, dep.deps_file))
+ for dep in self._deps.itervalues():
+ add_deps_file(dep)
+ for os_deps in self._deps_os.itervalues():
+ for dep in os_deps.itervalues():
+ add_deps_file(dep)
+
self._deps_string = '\n'.join(
_GNSettingsToLines(
self._client.dependencies[0]._gn_args_file,
@@ -1781,6 +1790,8 @@
_HooksToLines('pre_deps_hooks', self._pre_deps_hooks) +
_HooksOsToLines(self._hooks_os) +
_VarsToLines(self._vars) +
+ ['# %s, %s' % (url, deps_file)
+ for url, deps_file in sorted(deps_files)] +
['']) # Ensure newline at end of file.
def _add_dep(self, dep):
@@ -1806,6 +1817,10 @@
self._deps_os.get(dep_os, {}).get(os_dep.name) == os_dep), (
os_dep.name, self._deps_os.get(dep_os, {}).get(os_dep.name))
if os_dep.url:
+ # OS-specific deps need to have their full URL resolved manually.
+ assert not os_dep.parsed_url, (os_dep, os_dep.parsed_url)
+ os_dep._parsed_url = os_dep.LateOverride(os_dep.url)
+
self._deps_os.setdefault(dep_os, {})[os_dep.name] = os_dep
def _flatten_dep(self, dep, dep_os=None):