~ruther/qmk_firmware

8eeab1112aa1ca7336f88867a9a2ab680ae94b53 — Erovia 5 years ago 988bfff
Fix commandline parsing and flake8 findings, rebase

Fixed commandline and config parsing. Thx @xplusplus.
Rebased on master and fixed merge conflicts.
M lib/python/qmk/cli/list/keymaps.py => lib/python/qmk/cli/list/keymaps.py +4 -1
@@ 4,13 4,16 @@ from milc import cli
import qmk.keymap
from qmk.errors import NoSuchKeyboardError


@cli.argument("-kb", "--keyboard", help="Specify keyboard name. Example: 1upkeyboards/1up60hse")
@cli.subcommand("List the keymaps for a specific keyboard")
def list_keymaps(cli):
    """List the keymaps for a specific keyboard
    """
    # ask for user input if keyboard was not provided in the command line
    if not cli.config.list_keymaps.keyboard:
    if cli.args.keyboard:
        cli.config.list_keymaps.keyboard = cli.args.keyboard
    elif not cli.config.list_keymaps.keyboard:
        cli.config.list_keymaps.keyboard = input("Keyboard Name: ")

    try:

M lib/python/qmk/keymap.py => lib/python/qmk/keymap.py +1 -2
@@ 1,11 1,9 @@
"""Functions that help you work with QMK keymaps.
"""
import os
from traceback import format_exc

import qmk.path
import qmk.makefile
from qmk.errors import NoSuchKeyboardError

# The `keymap.c` template to use when a keyboard doesn't have its own
DEFAULT_KEYMAP_C = """#include QMK_KEYBOARD_H


@@ 98,6 96,7 @@ def write(keyboard, keymap, layout, layers):

    return keymap_file


def list_keymaps(keyboard_name):
    """ List the available keymaps for a keyboard.


M lib/python/qmk/makefile.py => lib/python/qmk/makefile.py +3 -1
@@ 5,6 5,7 @@ import os
import qmk.path
from qmk.errors import NoSuchKeyboardError


def parse_rules_mk_file(file, rules_mk=None):
    """Turn a rules.mk file into a dictionary.



@@ 45,12 46,13 @@ def parse_rules_mk_file(file, rules_mk=None):
                        rules_mk[key.strip()] = value.strip()
                else:
                    if ":=" in line:
                        line.replace(":","")
                        line.replace(":", "")
                    key, value = line.split('=', 1)
                    rules_mk[key.strip()] = value.strip()

    return rules_mk


def get_rules_mk(keyboard):
    """ Get a rules.mk for a keyboard


M lib/python/qmk/path.py => lib/python/qmk/path.py +2 -0
@@ 5,6 5,7 @@ import os

from qmk.errors import NoSuchKeyboardError


def keymap(keyboard):
    """Locate the correct directory for storing a keymap.



@@ 33,6 34,7 @@ def normpath(path):

    return os.path.normpath(os.path.join(os.environ['ORIG_CWD'], path))


def file_lines(filename):
    """ Return a files content, line by line


M lib/python/qmk/tests/test_cli_commands.py => lib/python/qmk/tests/test_cli_commands.py +8 -1
@@ 55,7 55,14 @@ def test_list_keyboards():
    # this will fail if handwired/onekey/pytest is removed
    assert 'handwired/onekey/pytest' in result.stdout


def test_list_keymaps():
    result = check_subcommand("list_keymaps", "-kb", "planck/ez")
    result = check_subcommand("list-keymaps", "-kb", "planck/ez")
    assert result.returncode == 0
    assert "planck/ez:default" and "planck/ez:drashna" in result.stdout


def test_list_keymaps_no_keyboard_found():
    result = check_subcommand("list-keymaps", "-kb", "asdfghjkl")
    assert result.returncode == 0
    assert "does not exist" in result.stdout