mirror of
https://github.com/qmk/qmk_firmware.git
synced 2024-11-27 13:40:14 +00:00
d569f08771
* Rework how bin/qmk handles subcommands * qmk config wip * Code to show all configs * Fully working `qmk config` command * Mark some CLI arguments so they don't pollute the config file * Fleshed out config support, nicer subcommand support * sync with installable cli * pyformat * Add a test for subcommand_modules * Documentation for the `qmk config` command * split config_token on space so qmk config is more predictable * Rework how subcommands are imported * Document `arg_only` * Document deleting from CLI * Document how multiple operations work * Add cli config to the doc index * Add tests for the cli commands * Make running the tests more reliable * Be more selective about building all default keymaps * Update new-keymap to fit the new subcommand style * Add documentation about writing CLI scripts * Document new-keyboard * Update docs/cli_configuration.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update docs/cli_development.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update docs/cli_development.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update docs/cli_development.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Address yan's comments. * Apply suggestions from code review suggestions from @noahfrederick Co-Authored-By: Noah Frederick <code@noahfrederick.com> * Apply suggestions from code review Co-Authored-By: Noah Frederick <code@noahfrederick.com> * Remove pip3 from the test runner
41 lines
1.7 KiB
Python
Executable File
41 lines
1.7 KiB
Python
Executable File
"""This script automates the copying of the default keymap into your own keymap.
|
|
"""
|
|
import os
|
|
import shutil
|
|
|
|
from milc import cli
|
|
|
|
|
|
@cli.argument('-kb', '--keyboard', help='Specify keyboard name. Example: 1upkeyboards/1up60hse')
|
|
@cli.argument('-km', '--keymap', help='Specify the name for the new keymap directory')
|
|
@cli.subcommand('Creates a new keymap for the keyboard of your choosing')
|
|
def new_keymap(cli):
|
|
"""Creates a new keymap for the keyboard of your choosing.
|
|
"""
|
|
# ask for user input if keyboard or username was not provided in the command line
|
|
keyboard = cli.config.new_keymap.keyboard if cli.config.new_keymap.keyboard else input("Keyboard Name: ")
|
|
keymap = cli.config.new_keymap.keymap if cli.config.new_keymap.keymap else input("Keymap Name: ")
|
|
|
|
# generate keymap paths
|
|
kb_path = os.path.join(os.getcwd(), "keyboards", keyboard)
|
|
keymap_path_default = os.path.join(kb_path, "keymaps/default")
|
|
keymap_path = os.path.join(kb_path, "keymaps/%s" % username)
|
|
|
|
# check directories
|
|
if not os.path.exists(kb_path):
|
|
cli.log.error('Keyboard %s does not exist!', kb_path)
|
|
exit(1)
|
|
if not os.path.exists(keymap_path_default):
|
|
cli.log.error('Keyboard default %s does not exist!', keymap_path_default)
|
|
exit(1)
|
|
if os.path.exists(keymap_path):
|
|
cli.log.error('Keymap %s already exists!', keymap_path)
|
|
exit(1)
|
|
|
|
# create user directory with default keymap files
|
|
shutil.copytree(keymap_path_default, keymap_path, symlinks=True)
|
|
|
|
# end message to user
|
|
cli.log.info("%s keymap directory created in: %s", username, keymap_path)
|
|
cli.log.info("Compile a firmware with your new keymap by typing: \n" + "qmk compile -kb %s -km %s", keyboard, username)
|