This commit is contained in:
Mylloon 2023-03-12 10:22:09 +01:00
parent 3094545569
commit 58b5fa794b
Signed by: Anri
GPG key ID: A82D63DFF8D1317F

49
main.py Normal file
View file

@ -0,0 +1,49 @@
import re
import subprocess
def clang_format(file_path):
command = ["clang-format", "--dry-run", file_path]
try:
output = subprocess.check_output(
command, stderr=subprocess.STDOUT, text=True)
except subprocess.CalledProcessError as e:
output = e.output
return output
def parse_clang_format_output(output):
error_pattern = r"(?P<filename>.+):(?P<line_number>\d+):(?P<column_number>\d+): warning: code should be clang-formatted \[(?P<warning_message>.+)\]"
error_matches = re.finditer(error_pattern, output)
if error_matches:
errors = []
for error_match in error_matches:
filename = error_match.group("filename")
line_number = int(error_match.group("line_number"))
column_number = int(error_match.group("column_number"))
warning_message = error_match.group("warning_message")
errors.append({
"filename": filename,
"line_number": line_number,
"column_number": column_number,
"warning_message": warning_message[1:]
})
return errors
return None
if __name__ == "__main__":
clang_format_output = clang_format("tests/1.c")
parsed_output = parse_clang_format_output(clang_format_output)
if parsed_output:
for error in parsed_output:
print(
f"Warning dans {error['filename']} à la ligne {error['line_number']}, caractère {error['column_number']} : {error['warning_message']}")
else:
print("No warnings found.")