OLD | NEW |
---|---|
1 #!/usr/bin/env python | 1 #!/usr/bin/env 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 """Moves C++ files to a new location, updating any include paths that point | 6 """Moves C++ files to a new location, updating any include paths that point |
7 to them, and re-ordering headers as needed. If multiple source files are | 7 to them, and re-ordering headers as needed. If multiple source files are |
8 specified, the destination must be a directory. Updates include guards in | 8 specified, the destination must be a directory. Updates include guards in |
9 moved header files. Assumes Chromium coding style. | 9 moved header files. Assumes Chromium coding style. |
10 | 10 |
11 Attempts to update paths used in .gyp(i) files, but does not reorder | 11 Attempts to update and reorder paths used in .gyp(i) files. |
12 or restructure .gyp(i) files in any way. | |
13 | 12 |
14 Updates full-path references to files in // comments in source files. | 13 Updates full-path references to files in // comments in source files. |
15 | 14 |
16 Must run in a git checkout, as it relies on git grep for a fast way to | 15 Must run in a git checkout, as it relies on git grep for a fast way to |
17 find files that reference the moved file. | 16 find files that reference the moved file. |
18 """ | 17 """ |
19 | 18 |
20 | 19 |
21 import optparse | 20 import optparse |
22 import os | 21 import os |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
206 # of the file plus one at the bottom for the comment on the #endif. | 205 # of the file plus one at the bottom for the comment on the #endif. |
207 if new_contents.count(new_guard) != 3: | 206 if new_contents.count(new_guard) != 3: |
208 print ('WARNING: Could not successfully update include guard; perhaps ' | 207 print ('WARNING: Could not successfully update include guard; perhaps ' |
209 'old guard is not per style guide? You will have to update the ' | 208 'old guard is not per style guide? You will have to update the ' |
210 'include guard manually. (%s)' % new_path) | 209 'include guard manually. (%s)' % new_path) |
211 | 210 |
212 with open(new_path, 'w') as f: | 211 with open(new_path, 'w') as f: |
213 f.write(new_contents) | 212 f.write(new_contents) |
214 | 213 |
215 def main(): | 214 def main(): |
216 if not os.path.isdir('.git'): | 215 # We use "git rev-parse" to check if the script is run from a git checkout. It |
217 print 'Fatal: You must run from the root of a git checkout.' | 216 # returns 0 even when run in the .git directory. We don't want people running |
217 # this in the .git directory. | |
218 if (not os.system('git rev-parse') == 0 or | |
scottmg
2016/01/21 19:57:20
os.system() != 0 seems more natural
dgrogan
2016/01/21 20:05:49
Done.
| |
219 os.path.basename(os.getcwd()) == '.git'): | |
220 print 'Fatal: You must run in a git checkout.' | |
218 return 1 | 221 return 1 |
219 | 222 |
220 in_blink = os.getcwd().endswith("third_party/WebKit") | 223 cwd = os.getcwd() |
224 parent = os.path.dirname(cwd) | |
225 in_blink = (os.path.basename(parent) == 'third_party' and | |
scottmg
2016/01/21 19:57:20
I might make this a --blink option with a default
dgrogan
2016/01/21 20:05:49
You're thinking of the move from third_party/WebKi
scottmg
2016/01/21 20:14:39
Yeah, or running from src, but moving a file in th
dgrogan
2016/01/21 20:18:30
Sure doesn't :)
| |
226 os.path.basename(cwd) == 'WebKit') | |
221 | 227 |
222 parser = optparse.OptionParser(usage='%prog FROM_PATH... TO_PATH') | 228 parser = optparse.OptionParser(usage='%prog FROM_PATH... TO_PATH') |
223 parser.add_option('--already_moved', action='store_true', | 229 parser.add_option('--already_moved', action='store_true', |
224 dest='already_moved', | 230 dest='already_moved', |
225 help='Causes the script to skip moving the file.') | 231 help='Causes the script to skip moving the file.') |
226 parser.add_option('--no_error_for_non_source_file', action='store_false', | 232 parser.add_option('--no_error_for_non_source_file', action='store_false', |
227 default='True', | 233 default='True', |
228 dest='error_for_non_source_file', | 234 dest='error_for_non_source_file', |
229 help='Causes the script to simply print a warning on ' | 235 help='Causes the script to simply print a warning on ' |
230 'encountering a non-source file rather than raising an ' | 236 'encountering a non-source file rather than raising an ' |
(...skipping 19 matching lines...) Expand all Loading... | |
250 continue | 256 continue |
251 to_path = MakeDestinationPath(from_path, orig_to_path) | 257 to_path = MakeDestinationPath(from_path, orig_to_path) |
252 if not opts.already_moved: | 258 if not opts.already_moved: |
253 MoveFile(from_path, to_path) | 259 MoveFile(from_path, to_path) |
254 UpdatePostMove(from_path, to_path, in_blink) | 260 UpdatePostMove(from_path, to_path, in_blink) |
255 return 0 | 261 return 0 |
256 | 262 |
257 | 263 |
258 if __name__ == '__main__': | 264 if __name__ == '__main__': |
259 sys.exit(main()) | 265 sys.exit(main()) |
OLD | NEW |