summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReiko Asakura2021-03-14 19:52:42 -0400
committerReiko Asakura2021-03-14 19:52:42 -0400
commit930d5c0f6ca8c9da6731bb5f7160d96f729d48aa (patch)
tree86fa8c0321ca70eda26a0cd637e03d75f3ad7574
parentUse ruamel instead of PyYAML (diff)
downloadvds-libraries-930d5c0f6ca8c9da6731bb5f7160d96f729d48aa.tar.gz
Check dupe NIDs in same library in lint workflow
-rw-r--r--.github/workflows/lint.yml4
-rw-r--r--scripts/nids-check-dupe.py25
2 files changed, 29 insertions, 0 deletions
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 81051d1..422a8a1 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -26,6 +26,10 @@ jobs:
run: |
pip3 install ruamel.yaml
+ - name: Check NIDs duplicates
+ run: |
+ python3 scripts/nids-check-dupe.py
+
- name: Check NIDs sort
run: |
python3 scripts/nids-check-sort.py
diff --git a/scripts/nids-check-dupe.py b/scripts/nids-check-dupe.py
new file mode 100644
index 0000000..2b4647c
--- /dev/null
+++ b/scripts/nids-check-dupe.py
@@ -0,0 +1,25 @@
+#!/usr/bin/env python3
+
+#
+# Copyright (C) 2021 Reiko Asakura. All Rights Reserved.
+#
+# Vita Development Suite Libraries
+#
+
+import sys
+from pathlib import Path
+
+import nids
+
+def check_dupe(f):
+ def library_cb(ud, libname, library):
+ ud[0] = set()
+
+ def export_cb(ud, kind, name, nid):
+ if nid in ud[0]:
+ sys.exit(f'Duplicate NID: {name}')
+ ud[0].add(nid)
+
+ nids.process(f, library_cb=library_cb, export_cb=export_cb, user_data=[None])
+
+nids.iterdir('nids', check_dupe)