summaryrefslogtreecommitdiff
path: root/scripts/nids-check-sort.py
diff options
context:
space:
mode:
authorReiko Asakura2021-03-03 22:21:18 -0500
committerReiko Asakura2021-03-03 22:21:18 -0500
commit067a0ce1a72f220ee91ddd29a47a70f9abddc5a2 (patch)
treed7cd347de0839d3d4a7df7c20a7c61a72a13681d /scripts/nids-check-sort.py
parentAdd SceNpWebApi internal functions (diff)
downloadvds-libraries-067a0ce1a72f220ee91ddd29a47a70f9abddc5a2.tar.gz
Refactor lint scripts
Diffstat (limited to 'scripts/nids-check-sort.py')
-rw-r--r--scripts/nids-check-sort.py58
1 files changed, 9 insertions, 49 deletions
diff --git a/scripts/nids-check-sort.py b/scripts/nids-check-sort.py
index d8764d6..98ce44b 100644
--- a/scripts/nids-check-sort.py
+++ b/scripts/nids-check-sort.py
@@ -7,55 +7,15 @@
#
import sys
-from pathlib import Path
-from yaml import load
-try:
- from yaml import CLoader as Loader
-except ImportError:
- from yaml import SafeLoader as Loader
+import nids
-def write_export_syms(syms):
- out = ''
- for name, nid in sorted(syms.items()):
- out += f' {name}: 0x{nid:08X}\n'
- return out
+def check_sort(f):
+ nids_string = f.read_text()
+ sorted_nids_string = nids.dump_string(nids_string)
+ if nids_string != sorted_nids_string:
+ print(f'{f} is not sorted')
+ print(sorted_nids_string)
+ sys.exit(1)
-def write_export_libs(exports):
- out = ''
- for libname, library in sorted(exports.items()):
- out += f' {libname}:\n'
- out += f' nid: 0x{library["nid"]:08X}\n'
- if 'functions' in library and library['functions']:
- out += ' functions:\n'
- out += write_export_syms(library['functions'])
- if 'variables' in library and library['variables']:
- out += ' variables:\n'
- out += write_export_syms(library['variables'])
- return out
-
-def write_nids(nids):
- out = 'modules:\n'
- for modname, module in sorted(nids['modules'].items()):
- out += f' {modname}:\n'
- out += f' nid: 0x{module["nid"]:08X}\n'
- if 'libraries' in module and module['libraries']:
- out += ' libraries:\n'
- out += write_export_libs(module['libraries'])
- return out
-
-def check_sort(d):
- for c in d.iterdir():
- if c.is_file():
- c_text = c.read_text()
- c_sorted = write_nids(load(c_text, Loader=Loader))
- if c_text != c_sorted:
- print(f'{c} is not sorted')
- print(c_sorted)
- sys.exit(1)
- elif c.is_dir():
- check_sort(c)
- else:
- sys.exit("Unexpected file type")
-
-check_sort(Path('nids'))
+nids.iterdir('nids', check_sort)