mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-09 17:48:19 +00:00
Rewrite unused header style check shell script in Python
As the shell script is pretty slow, taking roughly 84 seconds in the CI, whereas the equivalent Python script takes only 1 second.
This commit is contained in:
parent
46c7229a22
commit
db17539652
5
.github/workflows/style.yml
vendored
5
.github/workflows/style.yml
vendored
|
@ -73,9 +73,8 @@ jobs:
|
|||
run: |
|
||||
pylint --version
|
||||
find . -type f -name "*.py" -not -path './ddnet-libs/*' -not -path './googletest-src/*' -print0 | xargs -0 pylint
|
||||
- name: Unused headers
|
||||
run: |
|
||||
find src -name '*.h' | while read -r i; do grep -r -q "$(basename "$i")" || (echo "Header file $i is unused" && exit 1); done
|
||||
- name: Unused header files
|
||||
run: scripts/check_unused_header_files.py
|
||||
- name: Check maps
|
||||
run: |
|
||||
findings=$(find data -type f -name '*.map' -print0 | xargs -0 ~/.cargo/bin/twmap-check-ddnet 2>&1 | \
|
||||
|
|
36
scripts/check_unused_header_files.py
Executable file
36
scripts/check_unused_header_files.py
Executable file
|
@ -0,0 +1,36 @@
|
|||
#!/usr/bin/env python3
|
||||
import os
|
||||
import sys
|
||||
|
||||
def find_unused_header_files(directory):
|
||||
header_files = set()
|
||||
used_files = set()
|
||||
|
||||
for root, _, files in os.walk(directory):
|
||||
for file in files:
|
||||
if file.endswith('.h'):
|
||||
header_files.add(file)
|
||||
|
||||
for root, _, files in os.walk(directory):
|
||||
for file in files:
|
||||
with open(os.path.join(root, file), 'r', encoding="utf-8") as f:
|
||||
content = f.read()
|
||||
for header in header_files:
|
||||
if header in content:
|
||||
used_files.add(header)
|
||||
|
||||
return header_files - used_files
|
||||
|
||||
def main():
|
||||
directory = 'src'
|
||||
unused_header_files = find_unused_header_files(directory)
|
||||
|
||||
if unused_header_files:
|
||||
for file in unused_header_files:
|
||||
print(f"Error: Header file '{file}' is unused.")
|
||||
return 1
|
||||
print("Success: No header files are unused.")
|
||||
return 0
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
Loading…
Reference in a new issue