mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-07-17 13:12:08 +00:00
Merge 60f2f215c2
into 507c948ed8
This commit is contained in:
commit
d0d555a2da
@ -25,6 +25,21 @@ def _target_keyboard_exists(target):
|
||||
return True
|
||||
|
||||
|
||||
def _alias_not_self(alias):
|
||||
"""Check if alias points to itself, either directly or within a circular reference
|
||||
"""
|
||||
aliases = keyboard_alias_definitions()
|
||||
|
||||
found = set()
|
||||
while alias in aliases:
|
||||
found.add(alias)
|
||||
alias = aliases[alias].get('target', alias)
|
||||
if alias in found:
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
|
||||
@cli.subcommand('Validates the list of keyboard aliases.', hidden=True)
|
||||
def ci_validate_aliases(cli):
|
||||
aliases = keyboard_alias_definitions()
|
||||
@ -32,7 +47,11 @@ def ci_validate_aliases(cli):
|
||||
success = True
|
||||
for alias in aliases.keys():
|
||||
target = aliases[alias].get('target', None)
|
||||
if not _target_keyboard_exists(target):
|
||||
if not _alias_not_self(alias):
|
||||
cli.log.error(f'Keyboard alias {alias} should not point to itself')
|
||||
success = False
|
||||
|
||||
elif not _target_keyboard_exists(target):
|
||||
cli.log.error(f'Keyboard alias {alias} has a target that doesn\'t exist: {target}')
|
||||
success = False
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user