OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2015 The Chromium Authors. All rights reserved. | 2 # Copyright 2015 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 """Rolls DEPS controlled dependency. | 6 """Rolls DEPS controlled dependency. |
7 | 7 |
8 Works only with git checkout and git dependencies. Currently this | 8 Works only with git checkout and git dependencies. Currently this |
9 script will always roll to the tip of to origin/master. | 9 script will always roll to the tip of to origin/master. |
10 """ | 10 """ |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 ignore_dirty_tree=False): | 71 ignore_dirty_tree=False): |
72 deps = os.path.join(root, 'DEPS') | 72 deps = os.path.join(root, 'DEPS') |
73 try: | 73 try: |
74 with open(deps, 'rb') as f: | 74 with open(deps, 'rb') as f: |
75 deps_content = f.read() | 75 deps_content = f.read() |
76 except (IOError, OSError): | 76 except (IOError, OSError): |
77 raise Error('Ensure the script is run in the directory ' | 77 raise Error('Ensure the script is run in the directory ' |
78 'containing DEPS file.') | 78 'containing DEPS file.') |
79 | 79 |
80 if not ignore_dirty_tree and not is_pristine(root): | 80 if not ignore_dirty_tree and not is_pristine(root): |
81 raise Error('Ensure %s is clean first.' % root) | 81 raise Error('Ensure %s is clean first (no non-merged commits).' % root) |
82 | 82 |
83 full_dir = os.path.normpath(os.path.join(os.path.dirname(root), deps_dir)) | 83 full_dir = os.path.normpath(os.path.join(os.path.dirname(root), deps_dir)) |
84 if not os.path.isdir(full_dir): | 84 if not os.path.isdir(full_dir): |
85 raise Error('Directory not found: %s' % deps_dir) | 85 raise Error('Directory not found: %s (%s)' % (deps_dir, full_dir)) |
86 head = check_output(['git', 'rev-parse', 'HEAD'], cwd=full_dir).strip() | 86 head = check_output(['git', 'rev-parse', 'HEAD'], cwd=full_dir).strip() |
87 | 87 |
88 if not head in deps_content: | 88 if not head in deps_content: |
89 print('Warning: %s is not checked out at the expected revision in DEPS' % | 89 print('Warning: %s is not checked out at the expected revision in DEPS' % |
90 deps_dir) | 90 deps_dir) |
91 if key is None: | 91 if key is None: |
92 print("Warning: no key specified. Using '%s'." % deps_dir) | 92 print("Warning: no key specified. Using '%s'." % deps_dir) |
93 key = deps_dir | 93 key = deps_dir |
94 | 94 |
95 # It happens if the user checked out a branch in the dependency by himself. | 95 # It happens if the user checked out a branch in the dependency by himself. |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
213 | 213 |
214 except Error as e: | 214 except Error as e: |
215 sys.stderr.write('error: %s\n' % e) | 215 sys.stderr.write('error: %s\n' % e) |
216 return 1 | 216 return 1 |
217 | 217 |
218 return 0 | 218 return 0 |
219 | 219 |
220 | 220 |
221 if __name__ == '__main__': | 221 if __name__ == '__main__': |
222 sys.exit(main()) | 222 sys.exit(main()) |
OLD | NEW |