"""Prints the available bootloaders listed in docs.qmk.fm.
"""
cli.print_help()
cli.log.info('Here are the available bootloaders:')
cli.echo('\tavrdude')
cli.echo('\tbootloadhid')
@ -36,14 +38,29 @@ def print_bootloader_help():
cli.echo('\tuf2-split-left')
cli.echo('\tuf2-split-right')
cli.echo('For more info, visit https://docs.qmk.fm/#/flashing')
returnFalse
def_flash_binary(filename,mcu):
"""Try to flash binary firmware
"""
cli.echo('Flashing binary firmware...\nPlease reset your keyboard into bootloader mode now!\nPress Ctrl-C to exit.\n')
try:
err,msg=flasher(mcu,filename)
iferr:
cli.log.error(msg)
returnFalse
exceptKeyboardInterrupt:
cli.log.info('Ctrl-C was pressed, exiting...')
returnTrue
@cli.argument('filename',nargs='?',arg_only=True,type=qmk.path.FileType('r'),completer=FilesCompleter('.json'),help='A configurator export JSON to be compiled and flashed or a pre-compiled binary firmware file (bin/hex) to be flashed.')
@cli.argument('-b','--bootloaders',action='store_true',help='List the available bootloaders.')
@cli.argument('-bl','--bootloader',default='flash',help='The flash command, corresponding to qmk\'s make options of bootloaders.')
@cli.argument('-m','--mcu',help='The MCU name. Required for HalfKay, HID, USBAspLoader and ISP flashing.')
@cli.argument('-km','--keymap',help='The keymap to build a firmware for. Use this if you dont have a configurator file. Ignored when a configurator file is supplied.')
@cli.argument('-kb','--keyboard',type=keyboard_folder,completer=keyboard_completer,help='The keyboard to build a firmware for. Use this if you dont have a configurator file. Ignored when a configurator file is supplied.')
@cli.argument('-kb','--keyboard',type=keyboard_folder,completer=keyboard_completer,help='The keyboard to build a firmware for. Ignored when a configurator export is supplied.')
@cli.argument('-km','--keymap',completer=keymap_completer,help='The keymap to build a firmware for. Ignored when a configurator export is supplied.')
@cli.argument('-n','--dry-run',arg_only=True,action='store_true',help="Don't actually build, just show the make command to be run.")
@cli.argument('-j','--parallel',type=int,default=1,help="Set the number of parallel make jobs; 0 means unlimited.")
@cli.argument('-e','--env',arg_only=True,action='append',default=[],help="Set a variable to be passed to make. May be passed multiple times.")