keyboard stuff
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Ensure that safe_commands always run (#13199)

* ensure that safe_commands always run

* import the config subcommand in bin/qmk

authored by

Zach White and committed by
GitHub
0713797c ae45faca

+50 -41
+1
bin/qmk
··· 35 35 print('Warning: The bin/qmk script is being deprecated. Please install the QMK CLI: python3 -m pip install qmk', file=sys.stderr) 36 36 37 37 # Import the subcommands 38 + import milc.subcommand.config # noqa 38 39 import qmk.cli # noqa 39 40 40 41 # Execute
+49 -26
lib/python/qmk/cli/__init__.py
··· 26 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 66 def _run_cmd(*command): 31 67 """Run a command in a subshell. ··· 113 149 114 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 153 requirements = Path('requirements.txt').resolve() 118 154 119 155 print(f'Your MILC library is too old! Please upgrade: python3 -m pip install -U -r {str(requirements)}') ··· 125 161 while args and args[0][0] == '-': 126 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 167 if _broken_module_imports('requirements.txt'): 130 168 if yesno('Would you like to install the required Python modules?'): 131 169 _run_cmd(sys.executable, '-m', 'pip', 'install', '-r', 'requirements.txt') ··· 148 186 exit(1) 149 187 150 188 # Import our subcommands 151 - from . import bux # noqa 152 - from . import c2json # noqa 153 - from . import cformat # noqa 154 - from . import chibios # noqa 155 - from . import clean # noqa 156 - from . import compile # noqa 157 - from milc.subcommand import config # noqa 158 - from . import console # noqa 159 - from . import docs # noqa 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 189 + for subcommand in subcommands: 190 + try: 191 + __import__(subcommand) 192 + 193 + except ModuleNotFoundError as e: 194 + if safe_command: 195 + print(f'Warning: Could not import {subcommand}: {e.__class__.__name__}, {e}') 196 + else: 197 + raise
-1
lib/python/qmk/cli/chibios/__init__.py
··· 1 - from . import confmigrate
-1
lib/python/qmk/cli/format/__init__.py
··· 1 - from . import json
-9
lib/python/qmk/cli/generate/__init__.py
··· 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
-2
lib/python/qmk/cli/list/__init__.py
··· 1 - from . import keyboards 2 - from . import keymaps
-2
lib/python/qmk/cli/new/__init__.py
··· 1 - from . import keyboard 2 - from . import keymap