aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/python/qmk/cli/list/keymaps.py5
-rw-r--r--lib/python/qmk/keymap.py3
-rw-r--r--lib/python/qmk/makefile.py4
-rw-r--r--lib/python/qmk/path.py2
-rw-r--r--lib/python/qmk/tests/test_cli_commands.py9
5 files changed, 18 insertions, 5 deletions
diff --git a/lib/python/qmk/cli/list/keymaps.py b/lib/python/qmk/cli/list/keymaps.py
index a17c6a913..aab973140 100644
--- a/lib/python/qmk/cli/list/keymaps.py
+++ b/lib/python/qmk/cli/list/keymaps.py
@@ -4,13 +4,16 @@ from milc import cli
4import qmk.keymap 4import qmk.keymap
5from qmk.errors import NoSuchKeyboardError 5from qmk.errors import NoSuchKeyboardError
6 6
7
7@cli.argument("-kb", "--keyboard", help="Specify keyboard name. Example: 1upkeyboards/1up60hse") 8@cli.argument("-kb", "--keyboard", help="Specify keyboard name. Example: 1upkeyboards/1up60hse")
8@cli.subcommand("List the keymaps for a specific keyboard") 9@cli.subcommand("List the keymaps for a specific keyboard")
9def list_keymaps(cli): 10def list_keymaps(cli):
10 """List the keymaps for a specific keyboard 11 """List the keymaps for a specific keyboard
11 """ 12 """
12 # ask for user input if keyboard was not provided in the command line 13 # ask for user input if keyboard was not provided in the command line
13 if not cli.config.list_keymaps.keyboard: 14 if cli.args.keyboard:
15 cli.config.list_keymaps.keyboard = cli.args.keyboard
16 elif not cli.config.list_keymaps.keyboard:
14 cli.config.list_keymaps.keyboard = input("Keyboard Name: ") 17 cli.config.list_keymaps.keyboard = input("Keyboard Name: ")
15 18
16 try: 19 try:
diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py
index 113b885de..afb001f3e 100644
--- a/lib/python/qmk/keymap.py
+++ b/lib/python/qmk/keymap.py
@@ -1,11 +1,9 @@
1"""Functions that help you work with QMK keymaps. 1"""Functions that help you work with QMK keymaps.
2""" 2"""
3import os 3import os
4from traceback import format_exc
5 4
6import qmk.path 5import qmk.path
7import qmk.makefile 6import qmk.makefile
8from qmk.errors import NoSuchKeyboardError
9 7
10# The `keymap.c` template to use when a keyboard doesn't have its own 8# The `keymap.c` template to use when a keyboard doesn't have its own
11DEFAULT_KEYMAP_C = """#include QMK_KEYBOARD_H 9DEFAULT_KEYMAP_C = """#include QMK_KEYBOARD_H
@@ -98,6 +96,7 @@ def write(keyboard, keymap, layout, layers):
98 96
99 return keymap_file 97 return keymap_file
100 98
99
101def list_keymaps(keyboard_name): 100def list_keymaps(keyboard_name):
102 """ List the available keymaps for a keyboard. 101 """ List the available keymaps for a keyboard.
103 102
diff --git a/lib/python/qmk/makefile.py b/lib/python/qmk/makefile.py
index c53f12ac7..89494bbc0 100644
--- a/lib/python/qmk/makefile.py
+++ b/lib/python/qmk/makefile.py
@@ -5,6 +5,7 @@ import os
5import qmk.path 5import qmk.path
6from qmk.errors import NoSuchKeyboardError 6from qmk.errors import NoSuchKeyboardError
7 7
8
8def parse_rules_mk_file(file, rules_mk=None): 9def parse_rules_mk_file(file, rules_mk=None):
9 """Turn a rules.mk file into a dictionary. 10 """Turn a rules.mk file into a dictionary.
10 11
@@ -45,12 +46,13 @@ def parse_rules_mk_file(file, rules_mk=None):
45 rules_mk[key.strip()] = value.strip() 46 rules_mk[key.strip()] = value.strip()
46 else: 47 else:
47 if ":=" in line: 48 if ":=" in line:
48 line.replace(":","") 49 line.replace(":", "")
49 key, value = line.split('=', 1) 50 key, value = line.split('=', 1)
50 rules_mk[key.strip()] = value.strip() 51 rules_mk[key.strip()] = value.strip()
51 52
52 return rules_mk 53 return rules_mk
53 54
55
54def get_rules_mk(keyboard): 56def get_rules_mk(keyboard):
55 """ Get a rules.mk for a keyboard 57 """ Get a rules.mk for a keyboard
56 58
diff --git a/lib/python/qmk/path.py b/lib/python/qmk/path.py
index 0cdfe353c..bb28049b9 100644
--- a/lib/python/qmk/path.py
+++ b/lib/python/qmk/path.py
@@ -5,6 +5,7 @@ import os
5 5
6from qmk.errors import NoSuchKeyboardError 6from qmk.errors import NoSuchKeyboardError
7 7
8
8def keymap(keyboard): 9def keymap(keyboard):
9 """Locate the correct directory for storing a keymap. 10 """Locate the correct directory for storing a keymap.
10 11
@@ -33,6 +34,7 @@ def normpath(path):
33 34
34 return os.path.normpath(os.path.join(os.environ['ORIG_CWD'], path)) 35 return os.path.normpath(os.path.join(os.environ['ORIG_CWD'], path))
35 36
37
36def file_lines(filename): 38def file_lines(filename):
37 """ Return a files content, line by line 39 """ Return a files content, line by line
38 40
diff --git a/lib/python/qmk/tests/test_cli_commands.py b/lib/python/qmk/tests/test_cli_commands.py
index 7dc51d247..d88437903 100644
--- a/lib/python/qmk/tests/test_cli_commands.py
+++ b/lib/python/qmk/tests/test_cli_commands.py
@@ -55,7 +55,14 @@ def test_list_keyboards():
55 # this will fail if handwired/onekey/pytest is removed 55 # this will fail if handwired/onekey/pytest is removed
56 assert 'handwired/onekey/pytest' in result.stdout 56 assert 'handwired/onekey/pytest' in result.stdout
57 57
58
58def test_list_keymaps(): 59def test_list_keymaps():
59 result = check_subcommand("list_keymaps", "-kb", "planck/ez") 60 result = check_subcommand("list-keymaps", "-kb", "planck/ez")
60 assert result.returncode == 0 61 assert result.returncode == 0
61 assert "planck/ez:default" and "planck/ez:drashna" in result.stdout 62 assert "planck/ez:default" and "planck/ez:drashna" in result.stdout
63
64
65def test_list_keymaps_no_keyboard_found():
66 result = check_subcommand("list-keymaps", "-kb", "asdfghjkl")
67 assert result.returncode == 0
68 assert "does not exist" in result.stdout