summaryrefslogtreecommitdiff
path: root/lib/python/qmk/cli
diff options
context:
space:
mode:
authorZach White <skullydazed@gmail.com>2020-12-01 12:52:02 -0800
committerZach White <skullydazed@drpepper.org>2021-01-07 21:21:12 -0800
commitededff8556daff544633cb143cb6d939afd09014 (patch)
treefa7d69a513ec8f8d5dd23058c1ea650cb00944df /lib/python/qmk/cli
parent95cbcef34fee3727a224fc13c727ea744fd869e7 (diff)
validate keyboard data with jsonschema
Diffstat (limited to 'lib/python/qmk/cli')
-rwxr-xr-xlib/python/qmk/cli/generate/info_json.py2
-rwxr-xr-xlib/python/qmk/cli/generate/rules_mk.py13
2 files changed, 14 insertions, 1 deletions
diff --git a/lib/python/qmk/cli/generate/info_json.py b/lib/python/qmk/cli/generate/info_json.py
index 7e6654e45d..fba4b1c014 100755
--- a/lib/python/qmk/cli/generate/info_json.py
+++ b/lib/python/qmk/cli/generate/info_json.py
@@ -39,7 +39,7 @@ def generate_info_json(cli):
pared_down_json[key] = kb_info_json[key]
pared_down_json['layouts'] = {}
- if 'layouts' in pared_down_json:
+ if 'layouts' in kb_info_json:
for layout_name, layout in kb_info_json['layouts'].items():
pared_down_json['layouts'][layout_name] = {}
pared_down_json['layouts'][layout_name]['key_count'] = layout.get('key_count', len(layout['layout']))
diff --git a/lib/python/qmk/cli/generate/rules_mk.py b/lib/python/qmk/cli/generate/rules_mk.py
index 4268ae047b..72ed3c45fa 100755
--- a/lib/python/qmk/cli/generate/rules_mk.py
+++ b/lib/python/qmk/cli/generate/rules_mk.py
@@ -6,6 +6,10 @@ from qmk.decorators import automagic_keyboard, automagic_keymap
from qmk.info import info_json
from qmk.path import is_keyboard, normpath
+info_to_rules = {
+ 'bootloader': 'BOOTLOADER',
+ 'processor': 'MCU'
+}
@cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to')
@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages")
@@ -30,6 +34,10 @@ def generate_rules_mk(cli):
kb_info_json = info_json(cli.config.generate_rules_mk.keyboard)
rules_mk_lines = ['# This file was generated by `qmk generate-rules-mk`. Do not edit or copy.', '']
+ # Bring in settings
+ for info_key, rule_key in info_to_rules.items():
+ rules_mk_lines.append(f'{rule_key} := {kb_info_json[info_key]}')
+
# Find features that should be enabled
if 'features' in kb_info_json:
for feature, enabled in kb_info_json['features'].items():
@@ -37,6 +45,11 @@ def generate_rules_mk(cli):
enabled = 'yes' if enabled else 'no'
rules_mk_lines.append(f'{feature}_ENABLE := {enabled}')
+ # Set the LED driver
+ if 'led_matrix' in kb_info_json and 'driver' in kb_info_json['led_matrix']:
+ driver = kb_info_json['led_matrix']['driver']
+ rules_mk_lines.append(f'LED_MATRIX_DRIVER = {driver}')
+
# Add community layouts
if 'community_layouts' in kb_info_json:
rules_mk_lines.append(f'LAYOUTS = {" ".join(kb_info_json["community_layouts"])}')