From 054e071787a2d581cb3f7431e19ccda133b5363d Mon Sep 17 00:00:00 2001 From: zvecr Date: Mon, 5 Apr 2021 21:01:29 +0100 Subject: [PATCH 1/3] Add env subcommand --- qmk_cli/subcommands/__init__.py | 1 + qmk_cli/subcommands/env.py | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 qmk_cli/subcommands/env.py diff --git a/qmk_cli/subcommands/__init__.py b/qmk_cli/subcommands/__init__.py index 3b50b61..0eaf4ee 100644 --- a/qmk_cli/subcommands/__init__.py +++ b/qmk_cli/subcommands/__init__.py @@ -3,4 +3,5 @@ We list each subcommand here explicitly because all the reliable ways of searching for modules are slow and delay startup. """ from . import clone # noqa +from . import env # noqa from . import setup # noqa diff --git a/qmk_cli/subcommands/env.py b/qmk_cli/subcommands/env.py new file mode 100644 index 0000000..e1ab72e --- /dev/null +++ b/qmk_cli/subcommands/env.py @@ -0,0 +1,21 @@ +"""Prints environment information. +""" +import os + +from milc import cli + + +@cli.argument('var', default=None, nargs='?', help='Optional variable to query') +@cli.subcommand('Prints environment information.') +def env(cli): + data = { + 'QMK_HOME' : os.environ.get('QMK_HOME', "") + } + + if cli.args.var: + # dump out requested arg + print(data[cli.args.var]) + else: + # dump out everything + for key,val in data.items(): + print(f'{key}="{val}"') From 97689b53d7d31909347a7b599eeca3af5a5e5db3 Mon Sep 17 00:00:00 2001 From: zvecr Date: Mon, 5 Apr 2021 21:29:56 +0100 Subject: [PATCH 2/3] Add cli.config.general --- qmk_cli/subcommands/env.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/qmk_cli/subcommands/env.py b/qmk_cli/subcommands/env.py index e1ab72e..02b858c 100644 --- a/qmk_cli/subcommands/env.py +++ b/qmk_cli/subcommands/env.py @@ -9,13 +9,18 @@ from milc import cli @cli.subcommand('Prints environment information.') def env(cli): data = { - 'QMK_HOME' : os.environ.get('QMK_HOME', "") + 'QMK_HOME': os.environ.get('QMK_HOME', "") } + + # Now munge the current cli config + for key, val in cli.config.general.items(): + converted_key = 'QMK_' + key.upper() + data[converted_key] = val if cli.args.var: # dump out requested arg print(data[cli.args.var]) else: # dump out everything - for key,val in data.items(): + for key, val in data.items(): print(f'{key}="{val}"') From cbe3ad0248544522e3c4f067239a6b81994b7371 Mon Sep 17 00:00:00 2001 From: zvecr Date: Thu, 8 Apr 2021 23:41:12 +0100 Subject: [PATCH 3/3] Expose is_qmk_firmware status --- qmk_cli/subcommands/env.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/qmk_cli/subcommands/env.py b/qmk_cli/subcommands/env.py index 02b858c..d830b2f 100644 --- a/qmk_cli/subcommands/env.py +++ b/qmk_cli/subcommands/env.py @@ -1,17 +1,21 @@ """Prints environment information. """ import os +from pathlib import Path from milc import cli +from qmk_cli.helpers import is_qmk_firmware @cli.argument('var', default=None, nargs='?', help='Optional variable to query') @cli.subcommand('Prints environment information.') def env(cli): + home = os.environ.get('QMK_HOME', "") data = { - 'QMK_HOME': os.environ.get('QMK_HOME', "") + 'QMK_HOME': home, + 'QMK_FIRMWARE': home if is_qmk_firmware(Path(home)) else "" } - + # Now munge the current cli config for key, val in cli.config.general.items(): converted_key = 'QMK_' + key.upper()