|
|
@@ -98,50 +98,3 @@ def write(keyboard, keymap, layout, layers):
|
|
|
keymap_fd.write(keymap_c)
|
|
|
|
|
|
return keymap_file
|
|
|
-
|
|
|
-
|
|
|
-def compile_firmware(keyboard, keymap, layout, layers):
|
|
|
- """Compile a firmware.
|
|
|
- """
|
|
|
- result = {
|
|
|
- 'keyboard': keyboard,
|
|
|
- 'layout': layout,
|
|
|
- 'keymap': keymap,
|
|
|
- 'command': ['make', 'COLOR=false', ':'.join((keyboard, keymap))],
|
|
|
- 'returncode': -2,
|
|
|
- 'output': '',
|
|
|
- 'firmware': None,
|
|
|
- 'firmware_filename': '',
|
|
|
- }
|
|
|
-
|
|
|
- try:
|
|
|
- job = get_current_job()
|
|
|
- result['id'] = job.id
|
|
|
- checkout_qmk()
|
|
|
-
|
|
|
- # Sanity checks
|
|
|
- if not os.path.exists('qmk_firmware/keyboards/' + keyboard):
|
|
|
- logging.error('Unknown keyboard: %s', keyboard)
|
|
|
- return {'returncode': -1, 'command': '', 'output': 'Unknown keyboard!', 'firmware': None}
|
|
|
-
|
|
|
- for pathname in (
|
|
|
- 'qmk_firmware/keyboards/%s/keymaps/%s' % (keyboard, keymap),
|
|
|
- 'qmk_firmware/keyboards/%s/../keymaps/%s' % (keyboard, keymap),
|
|
|
- ):
|
|
|
- if os.path.exists(pathname):
|
|
|
- logging.error('Name collision! %s already exists! This should not happen!', pathname)
|
|
|
- return {'returncode': -1, 'command': '', 'output': 'Keymap name collision! %s already exists!' % (pathname), 'firmware': None}
|
|
|
-
|
|
|
- # Build the keyboard firmware
|
|
|
- write_keymap(result['keyboard'], result['keymap'], layers)
|
|
|
- store_firmware_binary(result)
|
|
|
-
|
|
|
- except Exception as e:
|
|
|
- result['returncode'] = -3
|
|
|
- result['exception'] = e.__class__.__name__
|
|
|
- result['stacktrace'] = format_exc()
|
|
|
-
|
|
|
- if not result['output']:
|
|
|
- result['output'] = result['stacktrace']
|
|
|
-
|
|
|
- return result
|