Index: tools/git-sync-deps |
diff --git a/tools/git-sync-deps b/tools/git-sync-deps |
index 717ab38055287dc2af9a0bdb4c814fcdca51fb79..1d626d066ccf9c6f55912fd845bd330471a9c448 100755 |
--- a/tools/git-sync-deps |
+++ b/tools/git-sync-deps |
@@ -148,38 +148,29 @@ def parse_file_to_dict(path): |
return dictionary |
-class DepsError(Exception): |
- """Raised if deps_os is a bad key. |
- """ |
- pass |
- |
- |
-def git_sync_deps(deps_file_path, deps_os_list, verbose): |
+def git_sync_deps(deps_file_path, command_line_os_requests, verbose): |
"""Grab dependencies, with optional platform support. |
Args: |
deps_file_path (string) Path to the DEPS file. |
- deps_os_list (list of strings) Can be empty list. List of |
- strings that should each be a key in the deps_os |
- dictionary in the DEPS file. |
+ command_line_os_requests (list of strings) Can be empty list. |
+ List of strings that should each be a key in the deps_os |
+ dictionary in the DEPS file. |
- Raises DepsError exception and git Exceptions. |
+ Raises git Exceptions. |
""" |
git = git_executable() |
assert git |
deps_file_directory = os.path.dirname(deps_file_path) |
- deps = parse_file_to_dict(deps_file_path) |
- dependencies = deps['deps'].copy() |
- for deps_os in deps_os_list: |
+ deps_file = parse_file_to_dict(deps_file_path) |
+ dependencies = deps_file['deps'].copy() |
+ os_specific_dependencies = deps_file.get('deps_os', []) |
+ for os_name in command_line_os_requests: |
# Add OS-specific dependencies |
- if deps_os not in deps['deps_os']: |
- raise DepsError( |
- 'Argument "%s" not found within deps_os keys %r' % |
- (deps_os, deps['deps_os'].keys())) |
- for dep in deps['deps_os'][deps_os]: |
- dependencies[dep] = deps['deps_os'][deps_os][dep] |
+ if os_name in os_specific_dependencies: |
+ dependencies.update(os_specific_dependencies[os_name]) |
list_of_arg_lists = [] |
for directory in dependencies: |
if '@' in dependencies[directory]: |
@@ -194,9 +185,9 @@ def git_sync_deps(deps_file_path, deps_os_list, verbose): |
multithread(git_checkout_to_directory, list_of_arg_lists) |
- for directory in deps.get('recursedeps', []): |
+ for directory in deps_file.get('recursedeps', []): |
recursive_path = os.path.join(deps_file_directory, directory, 'DEPS') |
- git_sync_deps(recursive_path, deps_os_list, verbose) |
+ git_sync_deps(recursive_path, command_line_os_requests, verbose) |
def multithread(function, list_of_arg_lists): |
@@ -215,13 +206,14 @@ def multithread(function, list_of_arg_lists): |
def main(argv): |
deps_file_path = os.environ.get('GIT_SYNC_DEPS_PATH', DEFAULT_DEPS_PATH) |
verbose = not bool(os.environ.get('GIT_SYNC_DEPS_QUIET', False)) |
- try: |
- git_sync_deps(deps_file_path, argv, verbose) |
- return 0 |
- except DepsError: |
+ |
+ if '--help' in argv or '-h' in argv: |
usage(deps_file_path) |
return 1 |
+ git_sync_deps(deps_file_path, argv, verbose) |
+ return 0 |
+ |
if __name__ == '__main__': |
exit(main(sys.argv[1:])) |