OLD | NEW |
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """Read DEPS and use the information to update git submodules""" | 6 """Read DEPS and use the information to update git submodules""" |
7 | 7 |
8 import argparse | 8 import argparse |
9 import logging | 9 import logging |
10 import os | 10 import os |
(...skipping 18 matching lines...) Expand all Loading... |
29 for name, value in submods.iteritems(): | 29 for name, value in submods.iteritems(): |
30 if not name.startswith(path_prefix): | 30 if not name.startswith(path_prefix): |
31 logging.warning('Dropping submodule "%s", because it is outside the ' | 31 logging.warning('Dropping submodule "%s", because it is outside the ' |
32 'working directory "%s"', name, path_prefix) | 32 'working directory "%s"', name, path_prefix) |
33 continue | 33 continue |
34 # Strip the prefix from the submodule name. | 34 # Strip the prefix from the submodule name. |
35 name = name[len(path_prefix):] | 35 name = name[len(path_prefix):] |
36 | 36 |
37 parts = name.split('/')[:-1] | 37 parts = name.split('/')[:-1] |
38 while parts: | 38 while parts: |
39 may_conflict = '/'.join(parts) | 39 may_conflict = path_prefix + '/'.join(parts) |
40 if may_conflict in submods: | 40 if may_conflict in submods: |
41 logging.warning('Dropping submodule "%s", because it is nested in ' | 41 logging.warning('Dropping submodule "%s", because it is nested in ' |
42 'submodule "%s"', name, may_conflict) | 42 'submodule "%s"', name, may_conflict) |
43 break | 43 break |
44 parts.pop() | 44 parts.pop() |
45 | 45 else: |
46 ret[name] = value | 46 ret[name] = value |
47 return ret | 47 return ret |
48 | 48 |
49 | 49 |
50 def CollateDeps(deps_content): | 50 def CollateDeps(deps_content): |
51 """ | 51 """ |
52 Take the output of deps_utils.GetDepsContent and return a hash of: | 52 Take the output of deps_utils.GetDepsContent and return a hash of: |
53 | 53 |
54 { submod_name : [ [ submod_os, ... ], submod_url, submod_sha1 ], ... } | 54 { submod_name : [ [ submod_os, ... ], submod_url, submod_sha1 ], ... } |
55 """ | 55 """ |
56 spliturl = lambda x: list(x.partition('@')[0::2]) if x else [None, None] | 56 spliturl = lambda x: list(x.partition('@')[0::2]) if x else [None, None] |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
148 options.path_prefix)) | 148 options.path_prefix)) |
149 RemoveObsoleteSubmodules() | 149 RemoveObsoleteSubmodules() |
150 for submod_path, submod_sha1 in adds.iteritems(): | 150 for submod_path, submod_sha1 in adds.iteritems(): |
151 subprocess.check_call(['git', 'update-index', '--add', | 151 subprocess.check_call(['git', 'update-index', '--add', |
152 '--cacheinfo', '160000', submod_sha1, submod_path]) | 152 '--cacheinfo', '160000', submod_sha1, submod_path]) |
153 return 0 | 153 return 0 |
154 | 154 |
155 | 155 |
156 if __name__ == '__main__': | 156 if __name__ == '__main__': |
157 sys.exit(main()) | 157 sys.exit(main()) |
OLD | NEW |