|
|
@@ -0,0 +1,28 @@
|
|
|
+"""Validates the list of keyboard targets.
|
|
|
+"""
|
|
|
+from milc import cli
|
|
|
+
|
|
|
+from pathlib import Path
|
|
|
+
|
|
|
+
|
|
|
+@cli.subcommand('Validates the list of keyboard targets.', hidden=True)
|
|
|
+def ci_validate_keyboard_targets(cli):
|
|
|
+ errors = set()
|
|
|
+
|
|
|
+ for rules_mk in Path('keyboards').glob('**/rules.mk'):
|
|
|
+ if any({'keymaps', 'common', 'lib'} & set(rules_mk.parts)):
|
|
|
+ continue
|
|
|
+
|
|
|
+ folder = rules_mk.parent
|
|
|
+ if not any(folder.glob('**/keyboard.json')):
|
|
|
+ errors.add(folder)
|
|
|
+
|
|
|
+ for keymap in Path('keyboards').glob('**/keymaps/'):
|
|
|
+ folder = keymap.parent
|
|
|
+ if not any(folder.glob('**/keyboard.json')):
|
|
|
+ errors.add(folder)
|
|
|
+
|
|
|
+ for error in errors:
|
|
|
+ print(f"{error}::Legacy target detected")
|
|
|
+
|
|
|
+ exit(min(len(errors), 255))
|