check-includes: print path relative to project root

Instead of /home/zbyszek/src/systemd-work/build/../src/xdg-autostart-generator/xdg-autostart-service.h:11,
print just src/xdg-autostart-generator/xdg-autostart-service.h:11.

This is a bit annoying that this requires so much verbosity, but the output
with the full names was too annoying.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2023-05-05 09:38:15 +02:00
parent b0bd2ae8b3
commit 495658d43c

View file

@ -3,9 +3,13 @@
# pylint: disable=missing-docstring,invalid-name,unspecified-encoding,consider-using-with
import os
import pathlib
import re
import sys
PROJECT_ROOT = pathlib.Path(os.getenv('PROJECT_SOURCE_ROOT', '.'))
def check_file(filename):
seen = set()
good = True
@ -13,6 +17,10 @@ def check_file(filename):
if m := re.match(r'^\s*#\s*include\s*[<"](\S*)[>"]', line):
include = m.group(1)
if include in seen:
try:
filename = pathlib.Path(filename).resolve().relative_to(PROJECT_ROOT)
except ValueError:
pass
print(f'{filename}:{n}: {line.strip()}')
good = False
seen.add(include)