mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-21 23:20:20 +00:00
Meta: Lint AvailablePorts.md
As requested by popular demand ;) https://github.com/SerenityOS/serenity/pull/5325#discussion_r575657614
This commit is contained in:
parent
87e4bcdf69
commit
ad4d9eaaf9
Notes:
sideshowbarker
2024-07-18 22:18:36 +09:00
Author: https://github.com/BenWiederhake Commit: https://github.com/SerenityOS/serenity/commit/ad4d9eaaf99 Pull-request: https://github.com/SerenityOS/serenity/pull/5330 Reviewed-by: https://github.com/nico
2 changed files with 63 additions and 0 deletions
|
@ -22,6 +22,7 @@ for cmd in \
|
|||
Meta/lint-ipc-ids.sh \
|
||||
Meta/lint-keymaps.py \
|
||||
Meta/lint-shell-scripts.sh \
|
||||
Meta/lint-ports.py \
|
||||
Meta/lint-prettier.sh \
|
||||
Meta/lint-python.sh; do
|
||||
echo "Running ${cmd}... "
|
||||
|
|
62
Meta/lint-ports.py
Executable file
62
Meta/lint-ports.py
Executable file
|
@ -0,0 +1,62 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import re
|
||||
|
||||
# Matches e.g. "| [`bash`]..." and captures "bash" in group 1
|
||||
PORT_TABLE_REGEX = re.compile(r'^\| \[`([^`]+)`\][^`]+$', re.MULTILINE)
|
||||
|
||||
PORT_TABLE_FILE = 'AvailablePorts.md'
|
||||
IGNORE_FILES = {'.gitignore', '.port_include.sh', PORT_TABLE_FILE, 'build_all.sh', 'ReadMe.md'}
|
||||
|
||||
|
||||
def read_port_table(filename):
|
||||
with open(filename, 'r') as fp:
|
||||
return set(PORT_TABLE_REGEX.findall(fp.read()))
|
||||
|
||||
|
||||
def read_port_dirs():
|
||||
ports = set()
|
||||
all_good = True
|
||||
for entry in os.listdir():
|
||||
if entry in IGNORE_FILES:
|
||||
continue
|
||||
if not os.path.isdir(entry):
|
||||
print('"Ports/{}" is neither a port (not a directory) nor an ignored file?!'.format(entry))
|
||||
all_good = False
|
||||
continue
|
||||
if not os.path.exists(entry + '/package.sh'):
|
||||
print('"Ports/{}/" is missing its package.sh?!'.format(entry))
|
||||
all_good = False
|
||||
continue
|
||||
ports.add(entry)
|
||||
|
||||
return ports, all_good
|
||||
|
||||
|
||||
def run():
|
||||
from_table = read_port_table(PORT_TABLE_FILE)
|
||||
from_fs, all_good = read_port_dirs()
|
||||
|
||||
if from_table - from_fs:
|
||||
all_good = False
|
||||
print('AvailablePorts.md lists ports that do not appear in the file system:')
|
||||
for port in sorted(from_table - from_fs):
|
||||
print(' {}'.format(port))
|
||||
|
||||
if from_fs - from_table:
|
||||
all_good = False
|
||||
print('AvailablePorts.md is missing the following ports:')
|
||||
for port in sorted(from_fs - from_table):
|
||||
print(' {}'.format(port))
|
||||
|
||||
if not all_good:
|
||||
exit(1)
|
||||
|
||||
print('No issues found.')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
os.chdir(os.path.dirname(__file__) + "/../Ports")
|
||||
# Ignore argv
|
||||
run()
|
Loading…
Reference in a new issue