mirror of https://github.com/ArduPilot/ardupilot
66 lines
1.9 KiB
Python
Executable File
66 lines
1.9 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
"""
|
|
Runs astyle over directory sub-trees known to be "astyle-clean"
|
|
|
|
AP_FLAKE8_CLEAN
|
|
"""
|
|
|
|
import os
|
|
import pathlib
|
|
import subprocess
|
|
import sys
|
|
|
|
import argparse
|
|
|
|
os.environ['PYTHONUNBUFFERED'] = '1'
|
|
|
|
|
|
class AStyleChecker(object):
|
|
def __init__(self):
|
|
self.retcode = 0
|
|
self.directories_to_check = [
|
|
'libraries/AP_DDS',
|
|
]
|
|
self.files_to_check = []
|
|
|
|
def progress(self, string):
|
|
print("****** %s" % (string,))
|
|
|
|
def check(self):
|
|
'''run astyle on all files in self.files_to_check'''
|
|
# for path in self.files_to_check:
|
|
# self.progress("Checking (%s)" % path)
|
|
astyle_command = ["astyle", "--dry-run"]
|
|
astyle_command.append("--options=Tools/CodeStyle/astylerc")
|
|
astyle_command.extend(self.files_to_check)
|
|
ret = subprocess.run(
|
|
astyle_command,
|
|
stdout=subprocess.PIPE,
|
|
stderr=subprocess.STDOUT,
|
|
text=True
|
|
)
|
|
if ret.returncode != 0:
|
|
self.progress("astyle check failed: (%s)" % (ret.stdout))
|
|
self.retcode = 1
|
|
if "Formatted" in ret.stdout:
|
|
self.progress("Files needing formatting found")
|
|
print(ret.stdout)
|
|
self.retcode = 1
|
|
|
|
def run(self):
|
|
for d in self.directories_to_check:
|
|
self.files_to_check.extend(list(pathlib.Path(d).glob("*")))
|
|
self.files_to_check = list(filter(lambda x : x.suffix in [".c", ".h", ".cpp"], self.files_to_check))
|
|
self.check()
|
|
return self.retcode
|
|
|
|
|
|
if __name__ == '__main__':
|
|
parser = argparse.ArgumentParser(description='Check all Python files for astyle cleanliness')
|
|
# parser.add_argument('--build', action='store_true', default=False, help='build as well as configure')
|
|
args = parser.parse_args()
|
|
|
|
checker = AStyleChecker()
|
|
sys.exit(checker.run())
|