diff options
Diffstat (limited to 'lib/python/qmk/cli/userspace/add.py')
-rw-r--r-- | lib/python/qmk/cli/userspace/add.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/python/qmk/cli/userspace/add.py b/lib/python/qmk/cli/userspace/add.py index 8993d54dba..0d6f32cd11 100644 --- a/lib/python/qmk/cli/userspace/add.py +++ b/lib/python/qmk/cli/userspace/add.py @@ -1,8 +1,9 @@ -# Copyright 2023 Nick Brassel (@tzarc) +# Copyright 2023-2024 Nick Brassel (@tzarc) # SPDX-License-Identifier: GPL-2.0-or-later from pathlib import Path from milc import cli +from qmk.commands import parse_env_vars from qmk.constants import QMK_USERSPACE, HAS_QMK_USERSPACE from qmk.keyboard import keyboard_completer, keyboard_folder_or_all from qmk.keymap import keymap_completer, is_keymap_target @@ -12,12 +13,15 @@ from qmk.userspace import UserspaceDefs @cli.argument('builds', nargs='*', arg_only=True, help="List of builds in form <keyboard>:<keymap>, or path to a keymap JSON file.") @cli.argument('-kb', '--keyboard', type=keyboard_folder_or_all, 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.') [email protected]('-e', '--env', arg_only=True, action='append', default=[], help="Extra variables to set during build. May be passed multiple times.") @cli.subcommand('Adds a build target to userspace `qmk.json`.') def userspace_add(cli): if not HAS_QMK_USERSPACE: cli.log.error('Could not determine QMK userspace location. Please run `qmk doctor` or `qmk userspace-doctor` to diagnose.') return False + build_env = None if len(cli.args.env) == 0 else parse_env_vars(cli.args.env) + userspace = UserspaceDefs(QMK_USERSPACE / 'qmk.json') if len(cli.args.builds) > 0: @@ -44,8 +48,8 @@ def userspace_add(cli): cli.config.new_keymap.keyboard = cli.args.keyboard cli.config.new_keymap.keymap = cli.args.keymap if new_keymap(cli) is not False: - userspace.add_target(keyboard=cli.args.keyboard, keymap=cli.args.keymap) + userspace.add_target(keyboard=cli.args.keyboard, keymap=cli.args.keymap, build_env=build_env) else: - userspace.add_target(keyboard=cli.args.keyboard, keymap=cli.args.keymap) + userspace.add_target(keyboard=cli.args.keyboard, keymap=cli.args.keymap, build_env=build_env) return userspace.save() |