| 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 # Copyright (C) 2008 Evan Martin <martine@danga.com> | 6 # Copyright (C) 2008 Evan Martin <martine@danga.com> |
| 7 | 7 |
| 8 """A git-command for integrating reviews on Rietveld.""" | 8 """A git-command for integrating reviews on Rietveld.""" |
| 9 | 9 |
| 10 from distutils.version import LooseVersion | 10 from distutils.version import LooseVersion |
| (...skipping 3566 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3577 # Locate the clang-format binary in the checkout | 3577 # Locate the clang-format binary in the checkout |
| 3578 try: | 3578 try: |
| 3579 clang_format_tool = clang_format.FindClangFormatToolInChromiumTree() | 3579 clang_format_tool = clang_format.FindClangFormatToolInChromiumTree() |
| 3580 except clang_format.NotFoundError, e: | 3580 except clang_format.NotFoundError, e: |
| 3581 DieWithError(e) | 3581 DieWithError(e) |
| 3582 | 3582 |
| 3583 # Set to 2 to signal to CheckPatchFormatted() that this patch isn't | 3583 # Set to 2 to signal to CheckPatchFormatted() that this patch isn't |
| 3584 # formatted. This is used to block during the presubmit. | 3584 # formatted. This is used to block during the presubmit. |
| 3585 return_value = 0 | 3585 return_value = 0 |
| 3586 | 3586 |
| 3587 if opts.full: | 3587 if clang_diff_files: |
| 3588 if clang_diff_files: | 3588 if opts.full: |
| 3589 cmd = [clang_format_tool] | 3589 cmd = [clang_format_tool] |
| 3590 if not opts.dry_run and not opts.diff: | 3590 if not opts.dry_run and not opts.diff: |
| 3591 cmd.append('-i') | 3591 cmd.append('-i') |
| 3592 stdout = RunCommand(cmd + clang_diff_files, cwd=top_dir) | 3592 stdout = RunCommand(cmd + clang_diff_files, cwd=top_dir) |
| 3593 if opts.diff: | 3593 if opts.diff: |
| 3594 sys.stdout.write(stdout) | 3594 sys.stdout.write(stdout) |
| 3595 else: | 3595 else: |
| 3596 env = os.environ.copy() | 3596 env = os.environ.copy() |
| 3597 env['PATH'] = str(os.path.dirname(clang_format_tool)) | 3597 env['PATH'] = str(os.path.dirname(clang_format_tool)) |
| 3598 try: | 3598 try: |
| 3599 script = clang_format.FindClangFormatScriptInChromiumTree( | 3599 script = clang_format.FindClangFormatScriptInChromiumTree( |
| 3600 'clang-format-diff.py') | 3600 'clang-format-diff.py') |
| 3601 except clang_format.NotFoundError, e: | 3601 except clang_format.NotFoundError, e: |
| 3602 DieWithError(e) | 3602 DieWithError(e) |
| 3603 | 3603 |
| 3604 cmd = [sys.executable, script, '-p0'] | 3604 cmd = [sys.executable, script, '-p0'] |
| 3605 if not opts.dry_run and not opts.diff: | 3605 if not opts.dry_run and not opts.diff: |
| 3606 cmd.append('-i') | 3606 cmd.append('-i') |
| 3607 | 3607 |
| 3608 diff_cmd = BuildGitDiffCmd('-U0', upstream_commit, clang_diff_files) | 3608 diff_cmd = BuildGitDiffCmd('-U0', upstream_commit, clang_diff_files) |
| 3609 diff_output = RunGit(diff_cmd) | 3609 diff_output = RunGit(diff_cmd) |
| 3610 | 3610 |
| 3611 stdout = RunCommand(cmd, stdin=diff_output, cwd=top_dir, env=env) | 3611 stdout = RunCommand(cmd, stdin=diff_output, cwd=top_dir, env=env) |
| 3612 if opts.diff: | 3612 if opts.diff: |
| 3613 sys.stdout.write(stdout) | 3613 sys.stdout.write(stdout) |
| 3614 if opts.dry_run and len(stdout) > 0: | 3614 if opts.dry_run and len(stdout) > 0: |
| 3615 return_value = 2 | 3615 return_value = 2 |
| 3616 | 3616 |
| 3617 # Similar code to above, but using yapf on .py files rather than clang-format | 3617 # Similar code to above, but using yapf on .py files rather than clang-format |
| 3618 # on C/C++ files | 3618 # on C/C++ files |
| 3619 if opts.python: | 3619 if opts.python: |
| 3620 yapf_tool = gclient_utils.FindExecutable('yapf') | 3620 yapf_tool = gclient_utils.FindExecutable('yapf') |
| 3621 if yapf_tool is None: | 3621 if yapf_tool is None: |
| 3622 DieWithError('yapf not found in PATH') | 3622 DieWithError('yapf not found in PATH') |
| 3623 | 3623 |
| 3624 if opts.full: | 3624 if opts.full: |
| 3625 if python_diff_files: | 3625 if python_diff_files: |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3760 if __name__ == '__main__': | 3760 if __name__ == '__main__': |
| 3761 # These affect sys.stdout so do it outside of main() to simplify mocks in | 3761 # These affect sys.stdout so do it outside of main() to simplify mocks in |
| 3762 # unit testing. | 3762 # unit testing. |
| 3763 fix_encoding.fix_encoding() | 3763 fix_encoding.fix_encoding() |
| 3764 colorama.init() | 3764 colorama.init() |
| 3765 try: | 3765 try: |
| 3766 sys.exit(main(sys.argv[1:])) | 3766 sys.exit(main(sys.argv[1:])) |
| 3767 except KeyboardInterrupt: | 3767 except KeyboardInterrupt: |
| 3768 sys.stderr.write('interrupted\n') | 3768 sys.stderr.write('interrupted\n') |
| 3769 sys.exit(1) | 3769 sys.exit(1) |
| OLD | NEW |