| #!/usr/bin/env python |
| |
| # Copyright 2019 The ANGLE Project Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # apply_clang_format_on_all_sources.py: |
| # Script to apply clang-format recursively on directory, |
| # example usage: |
| # ./scripts/apply_clang_format_on_all_sources.py src |
| |
| from __future__ import print_function |
| |
| import os |
| import sys |
| import platform |
| import subprocess |
| |
| # inplace change and use style from .clang-format |
| CLANG_FORMAT_ARGS = ['-i', '-style=file'] |
| |
| |
| def main(directory): |
| system = platform.system() |
| |
| clang_format_exe = 'clang-format' |
| if system == 'Windows': |
| clang_format_exe += '.bat' |
| |
| partial_cmd = [clang_format_exe] + CLANG_FORMAT_ARGS |
| |
| for subdir, _, files in os.walk(directory): |
| if 'third_party' in subdir: |
| continue |
| |
| for f in files: |
| if f.endswith(('.c', '.h', '.cpp', '.hpp')): |
| f_abspath = os.path.join(subdir, f) |
| print("Applying clang-format on ", f_abspath) |
| subprocess.check_call(partial_cmd + [f_abspath]) |
| |
| |
| if __name__ == '__main__': |
| if len(sys.argv) > 2: |
| print('Too mang args', file=sys.stderr) |
| |
| elif len(sys.argv) == 2: |
| main(os.path.join(os.getcwd(), sys.argv[1])) |
| |
| else: |
| main(os.getcwd()) |