diff options
| author | Zach White <skullydazed@gmail.com> | 2021-06-14 16:51:58 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-14 16:51:58 -0700 |
| commit | 0713797c58376e8237174f8ca83a3fff9d964b9d (patch) | |
| tree | e3e90c08dba4a35dbcf521f5d19a3ca4e711af34 /lib | |
| parent | ae45faca2660c41aab5eea957bc979f4c385bde5 (diff) | |
| download | qmk_firmware-0713797c58376e8237174f8ca83a3fff9d964b9d.tar.gz qmk_firmware-0713797c58376e8237174f8ca83a3fff9d964b9d.zip | |
Ensure that safe_commands always run (#13199)
* ensure that safe_commands always run
* import the config subcommand in bin/qmk
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/python/qmk/cli/__init__.py | 75 | ||||
| -rw-r--r-- | lib/python/qmk/cli/chibios/__init__.py | 1 | ||||
| -rw-r--r-- | lib/python/qmk/cli/format/__init__.py | 1 | ||||
| -rw-r--r-- | lib/python/qmk/cli/generate/__init__.py | 9 | ||||
| -rw-r--r-- | lib/python/qmk/cli/list/__init__.py | 2 | ||||
| -rw-r--r-- | lib/python/qmk/cli/new/__init__.py | 2 |
6 files changed, 49 insertions, 41 deletions
diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py index 48812ae4b..32da1a9b5 100644 --- a/lib/python/qmk/cli/__init__.py +++ b/lib/python/qmk/cli/__init__.py | |||
| @@ -26,6 +26,42 @@ safe_commands = [ | |||
| 26 | 'setup', | 26 | 'setup', |
| 27 | ] | 27 | ] |
| 28 | 28 | ||
| 29 | subcommands = [ | ||
| 30 | 'qmk.cli.bux', | ||
| 31 | 'qmk.cli.c2json', | ||
| 32 | 'qmk.cli.cformat', | ||
| 33 | 'qmk.cli.chibios.confmigrate', | ||
| 34 | 'qmk.cli.clean', | ||
| 35 | 'qmk.cli.compile', | ||
| 36 | 'qmk.cli.console', | ||
| 37 | 'qmk.cli.docs', | ||
| 38 | 'qmk.cli.doctor', | ||
| 39 | 'qmk.cli.fileformat', | ||
| 40 | 'qmk.cli.flash', | ||
| 41 | 'qmk.cli.format.json', | ||
| 42 | 'qmk.cli.generate.api', | ||
| 43 | 'qmk.cli.generate.config_h', | ||
| 44 | 'qmk.cli.generate.dfu_header', | ||
| 45 | 'qmk.cli.generate.docs', | ||
| 46 | 'qmk.cli.generate.info_json', | ||
| 47 | 'qmk.cli.generate.keyboard_h', | ||
| 48 | 'qmk.cli.generate.layouts', | ||
| 49 | 'qmk.cli.generate.rgb_breathe_table', | ||
| 50 | 'qmk.cli.generate.rules_mk', | ||
| 51 | 'qmk.cli.hello', | ||
| 52 | 'qmk.cli.info', | ||
| 53 | 'qmk.cli.json2c', | ||
| 54 | 'qmk.cli.lint', | ||
| 55 | 'qmk.cli.list.keyboards', | ||
| 56 | 'qmk.cli.list.keymaps', | ||
| 57 | 'qmk.cli.kle2json', | ||
| 58 | 'qmk.cli.multibuild', | ||
| 59 | 'qmk.cli.new.keyboard', | ||
| 60 | 'qmk.cli.new.keymap', | ||
| 61 | 'qmk.cli.pyformat', | ||
| 62 | 'qmk.cli.pytest', | ||
| 63 | ] | ||
| 64 | |||
| 29 | 65 | ||
| 30 | def _run_cmd(*command): | 66 | def _run_cmd(*command): |
| 31 | """Run a command in a subshell. | 67 | """Run a command in a subshell. |
| @@ -113,7 +149,7 @@ if sys.version_info[0] != 3 or sys.version_info[1] < 7: | |||
| 113 | 149 | ||
| 114 | milc_version = __VERSION__.split('.') | 150 | milc_version = __VERSION__.split('.') |
| 115 | 151 | ||
| 116 | if int(milc_version[0]) < 2 and int(milc_version[1]) < 3: | 152 | if int(milc_version[0]) < 2 and int(milc_version[1]) < 4: |
| 117 | requirements = Path('requirements.txt').resolve() | 153 | requirements = Path('requirements.txt').resolve() |
| 118 | 154 | ||
| 119 | print(f'Your MILC library is too old! Please upgrade: python3 -m pip install -U -r {str(requirements)}') | 155 | print(f'Your MILC library is too old! Please upgrade: python3 -m pip install -U -r {str(requirements)}') |
| @@ -125,7 +161,9 @@ args = sys.argv[1:] | |||
| 125 | while args and args[0][0] == '-': | 161 | while args and args[0][0] == '-': |
| 126 | del args[0] | 162 | del args[0] |
| 127 | 163 | ||
| 128 | if not args or args[0] not in safe_commands: | 164 | safe_command = args and args[0] in safe_commands |
| 165 | |||
| 166 | if not safe_command: | ||
| 129 | if _broken_module_imports('requirements.txt'): | 167 | if _broken_module_imports('requirements.txt'): |
| 130 | if yesno('Would you like to install the required Python modules?'): | 168 | if yesno('Would you like to install the required Python modules?'): |
| 131 | _run_cmd(sys.executable, '-m', 'pip', 'install', '-r', 'requirements.txt') | 169 | _run_cmd(sys.executable, '-m', 'pip', 'install', '-r', 'requirements.txt') |
| @@ -148,27 +186,12 @@ if not args or args[0] not in safe_commands: | |||
| 148 | exit(1) | 186 | exit(1) |
| 149 | 187 | ||
| 150 | # Import our subcommands | 188 | # Import our subcommands |
| 151 | from . import bux # noqa | 189 | for subcommand in subcommands: |
| 152 | from . import c2json # noqa | 190 | try: |
| 153 | from . import cformat # noqa | 191 | __import__(subcommand) |
| 154 | from . import chibios # noqa | 192 | |
| 155 | from . import clean # noqa | 193 | except ModuleNotFoundError as e: |
| 156 | from . import compile # noqa | 194 | if safe_command: |
| 157 | from milc.subcommand import config # noqa | 195 | print(f'Warning: Could not import {subcommand}: {e.__class__.__name__}, {e}') |
| 158 | from . import console # noqa | 196 | else: |
| 159 | from . import docs # noqa | 197 | raise |
| 160 | from . import doctor # noqa | ||
| 161 | from . import fileformat # noqa | ||
| 162 | from . import flash # noqa | ||
| 163 | from . import format # noqa | ||
| 164 | from . import generate # noqa | ||
| 165 | from . import hello # noqa | ||
| 166 | from . import info # noqa | ||
| 167 | from . import json2c # noqa | ||
| 168 | from . import lint # noqa | ||
| 169 | from . import list # noqa | ||
| 170 | from . import kle2json # noqa | ||
| 171 | from . import multibuild # noqa | ||
| 172 | from . import new # noqa | ||
| 173 | from . import pyformat # noqa | ||
| 174 | from . import pytest # noqa | ||
diff --git a/lib/python/qmk/cli/chibios/__init__.py b/lib/python/qmk/cli/chibios/__init__.py index 4301837de..e69de29bb 100644 --- a/lib/python/qmk/cli/chibios/__init__.py +++ b/lib/python/qmk/cli/chibios/__init__.py | |||
| @@ -1 +0,0 @@ | |||
| 1 | from . import confmigrate | ||
diff --git a/lib/python/qmk/cli/format/__init__.py b/lib/python/qmk/cli/format/__init__.py index 741ec778b..e69de29bb 100644 --- a/lib/python/qmk/cli/format/__init__.py +++ b/lib/python/qmk/cli/format/__init__.py | |||
| @@ -1 +0,0 @@ | |||
| 1 | from . import json | ||
diff --git a/lib/python/qmk/cli/generate/__init__.py b/lib/python/qmk/cli/generate/__init__.py index 0efca0022..e69de29bb 100644 --- a/lib/python/qmk/cli/generate/__init__.py +++ b/lib/python/qmk/cli/generate/__init__.py | |||
| @@ -1,9 +0,0 @@ | |||
| 1 | from . import api | ||
| 2 | from . import config_h | ||
| 3 | from . import dfu_header | ||
| 4 | from . import docs | ||
| 5 | from . import info_json | ||
| 6 | from . import keyboard_h | ||
| 7 | from . import layouts | ||
| 8 | from . import rgb_breathe_table | ||
| 9 | from . import rules_mk | ||
diff --git a/lib/python/qmk/cli/list/__init__.py b/lib/python/qmk/cli/list/__init__.py index d83cd20b5..e69de29bb 100644 --- a/lib/python/qmk/cli/list/__init__.py +++ b/lib/python/qmk/cli/list/__init__.py | |||
| @@ -1,2 +0,0 @@ | |||
| 1 | from . import keyboards | ||
| 2 | from . import keymaps | ||
diff --git a/lib/python/qmk/cli/new/__init__.py b/lib/python/qmk/cli/new/__init__.py index fe5d6fe48..e69de29bb 100644 --- a/lib/python/qmk/cli/new/__init__.py +++ b/lib/python/qmk/cli/new/__init__.py | |||
| @@ -1,2 +0,0 @@ | |||
| 1 | from . import keyboard | ||
| 2 | from . import keymap | ||
