|
|
@ -50,18 +50,9 @@ def _valid_community_layout(layout): |
|
|
|
return (Path('layouts/default') / layout).exists() |
|
|
|
|
|
|
|
|
|
|
|
def _validate(keyboard, info_data): |
|
|
|
"""Perform various validation on the provided info.json data |
|
|
|
def _additional_validation(keyboard, info_data): |
|
|
|
"""Non schema checks |
|
|
|
""" |
|
|
|
# First validate against the jsonschema |
|
|
|
try: |
|
|
|
validate(info_data, 'qmk.api.keyboard.v1') |
|
|
|
|
|
|
|
except jsonschema.ValidationError as e: |
|
|
|
json_path = '.'.join([str(p) for p in e.absolute_path]) |
|
|
|
cli.log.error('Invalid API data: %s: %s: %s', keyboard, json_path, e.message) |
|
|
|
exit(1) |
|
|
|
|
|
|
|
layouts = info_data.get('layouts', {}) |
|
|
|
layout_aliases = info_data.get('layout_aliases', {}) |
|
|
|
community_layouts = info_data.get('community_layouts', []) |
|
|
@ -110,6 +101,21 @@ def _validate(keyboard, info_data): |
|
|
|
_log_error(info_data, f'Keycode {decl["key"]} has no short form alias') |
|
|
|
|
|
|
|
|
|
|
|
def _validate(keyboard, info_data): |
|
|
|
"""Perform various validation on the provided info.json data |
|
|
|
""" |
|
|
|
# First validate against the jsonschema |
|
|
|
try: |
|
|
|
validate(info_data, 'qmk.api.keyboard.v1') |
|
|
|
|
|
|
|
_additional_validation(keyboard, info_data) |
|
|
|
|
|
|
|
except jsonschema.ValidationError as e: |
|
|
|
json_path = '.'.join([str(p) for p in e.absolute_path]) |
|
|
|
cli.log.error('Invalid API data: %s: %s: %s', keyboard, json_path, e.message) |
|
|
|
exit(1) |
|
|
|
|
|
|
|
|
|
|
|
def info_json(keyboard): |
|
|
|
"""Generate the info.json data for a specific keyboard. |
|
|
|
""" |
|
|
|