~ruther/qmk_firmware

a1f253cbef309906c989cfb3e123ee8fb3172bb4 — Joel Challis 2 years ago baecc69
`qmk compile`/`qmk flash` - Validate keymap argument (#19530)

2 files changed, 32 insertions(+), 2 deletions(-)

M lib/python/qmk/cli/compile.py
M lib/python/qmk/cli/flash.py
M lib/python/qmk/cli/compile.py => lib/python/qmk/cli/compile.py +16 -1
@@ 10,7 10,17 @@ import qmk.path
from qmk.decorators import automagic_keyboard, automagic_keymap
from qmk.commands import compile_configurator_json, create_make_command, parse_configurator_json, build_environment
from qmk.keyboard import keyboard_completer, keyboard_folder
from qmk.keymap import keymap_completer
from qmk.keymap import keymap_completer, locate_keymap


def _is_keymap_target(keyboard, keymap):
    if keymap == 'all':
        return True

    if locate_keymap(keyboard, keymap):
        return True

    return False


@cli.argument('filename', nargs='?', arg_only=True, type=qmk.path.FileType('r'), completer=FilesCompleter('.json'), help='The configurator export to compile')


@@ 43,6 53,11 @@ def compile(cli):

    elif cli.config.compile.keyboard and cli.config.compile.keymap:
        # Generate the make command for a specific keyboard/keymap.
        if not _is_keymap_target(cli.config.compile.keyboard, cli.config.compile.keymap):
            cli.log.error('Invalid keymap argument.')
            cli.print_help()
            return False

        if cli.args.clean:
            commands.append(create_make_command(cli.config.compile.keyboard, cli.config.compile.keymap, 'clean', **envs))
        commands.append(create_make_command(cli.config.compile.keyboard, cli.config.compile.keymap, parallel=cli.config.compile.parallel, **envs))

M lib/python/qmk/cli/flash.py => lib/python/qmk/cli/flash.py +16 -1
@@ 11,10 11,20 @@ import qmk.path
from qmk.decorators import automagic_keyboard, automagic_keymap
from qmk.commands import compile_configurator_json, create_make_command, parse_configurator_json, build_environment
from qmk.keyboard import keyboard_completer, keyboard_folder
from qmk.keymap import keymap_completer
from qmk.keymap import keymap_completer, locate_keymap
from qmk.flashers import flasher


def _is_keymap_target(keyboard, keymap):
    if keymap == 'all':
        return True

    if locate_keymap(keyboard, keymap):
        return True

    return False


def _list_bootloaders():
    """Prints the available bootloaders listed in docs.qmk.fm.
    """


@@ 98,6 108,11 @@ def flash(cli):

    elif cli.config.flash.keyboard and cli.config.flash.keymap:
        # Generate the make command for a specific keyboard/keymap.
        if not _is_keymap_target(cli.config.flash.keyboard, cli.config.flash.keymap):
            cli.log.error('Invalid keymap argument.')
            cli.print_help()
            return False

        if cli.args.clean:
            commands.append(create_make_command(cli.config.flash.keyboard, cli.config.flash.keymap, 'clean', **envs))
        commands.append(create_make_command(cli.config.flash.keyboard, cli.config.flash.keymap, cli.args.bootloader, parallel=cli.config.flash.parallel, **envs))