validate_keyboard_targets.py 775 B

12345678910111213141516171819202122232425262728
  1. """Validates the list of keyboard targets.
  2. """
  3. from milc import cli
  4. from pathlib import Path
  5. @cli.subcommand('Validates the list of keyboard targets.', hidden=True)
  6. def ci_validate_keyboard_targets(cli):
  7. errors = set()
  8. for rules_mk in Path('keyboards').glob('**/rules.mk'):
  9. if any({'keymaps', 'common', 'lib'} & set(rules_mk.parts)):
  10. continue
  11. folder = rules_mk.parent
  12. if not any(folder.glob('**/keyboard.json')):
  13. errors.add(folder)
  14. for keymap in Path('keyboards').glob('**/keymaps/'):
  15. folder = keymap.parent
  16. if not any(folder.glob('**/keyboard.json')):
  17. errors.add(folder)
  18. for error in errors:
  19. print(f"{error}::Legacy target detected")
  20. exit(min(len(errors), 255))