diff options
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 48812ae4ba..32da1a9b52 100644 --- a/lib/python/qmk/cli/__init__.py +++ b/lib/python/qmk/cli/__init__.py @@ -26,6 +26,42 @@ safe_commands = [      'setup',  ] +subcommands = [ +    'qmk.cli.bux', +    'qmk.cli.c2json', +    'qmk.cli.cformat', +    'qmk.cli.chibios.confmigrate', +    'qmk.cli.clean', +    'qmk.cli.compile', +    'qmk.cli.console', +    'qmk.cli.docs', +    'qmk.cli.doctor', +    'qmk.cli.fileformat', +    'qmk.cli.flash', +    'qmk.cli.format.json', +    'qmk.cli.generate.api', +    'qmk.cli.generate.config_h', +    'qmk.cli.generate.dfu_header', +    'qmk.cli.generate.docs', +    'qmk.cli.generate.info_json', +    'qmk.cli.generate.keyboard_h', +    'qmk.cli.generate.layouts', +    'qmk.cli.generate.rgb_breathe_table', +    'qmk.cli.generate.rules_mk', +    'qmk.cli.hello', +    'qmk.cli.info', +    'qmk.cli.json2c', +    'qmk.cli.lint', +    'qmk.cli.list.keyboards', +    'qmk.cli.list.keymaps', +    'qmk.cli.kle2json', +    'qmk.cli.multibuild', +    'qmk.cli.new.keyboard', +    'qmk.cli.new.keymap', +    'qmk.cli.pyformat', +    'qmk.cli.pytest', +] +  def _run_cmd(*command):      """Run a command in a subshell. @@ -113,7 +149,7 @@ if sys.version_info[0] != 3 or sys.version_info[1] < 7:  milc_version = __VERSION__.split('.') -if int(milc_version[0]) < 2 and int(milc_version[1]) < 3: +if int(milc_version[0]) < 2 and int(milc_version[1]) < 4:      requirements = Path('requirements.txt').resolve()      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:]  while args and args[0][0] == '-':      del args[0] -if not args or args[0] not in safe_commands: +safe_command = args and args[0] in safe_commands + +if not safe_command:      if _broken_module_imports('requirements.txt'):          if yesno('Would you like to install the required Python modules?'):              _run_cmd(sys.executable, '-m', 'pip', 'install', '-r', 'requirements.txt') @@ -148,27 +186,12 @@ if not args or args[0] not in safe_commands:              exit(1)  # Import our subcommands -from . import bux  # noqa -from . import c2json  # noqa -from . import cformat  # noqa -from . import chibios  # noqa -from . import clean  # noqa -from . import compile  # noqa -from milc.subcommand import config  # noqa -from . import console  # noqa -from . import docs  # noqa -from . import doctor  # noqa -from . import fileformat  # noqa -from . import flash  # noqa -from . import format  # noqa -from . import generate  # noqa -from . import hello  # noqa -from . import info  # noqa -from . import json2c  # noqa -from . import lint  # noqa -from . import list  # noqa -from . import kle2json  # noqa -from . import multibuild  # noqa -from . import new  # noqa -from . import pyformat  # noqa -from . import pytest  # noqa +for subcommand in subcommands: +    try: +        __import__(subcommand) + +    except ModuleNotFoundError as e: +        if safe_command: +            print(f'Warning: Could not import {subcommand}: {e.__class__.__name__}, {e}') +        else: +            raise diff --git a/lib/python/qmk/cli/chibios/__init__.py b/lib/python/qmk/cli/chibios/__init__.py index 4301837def..e69de29bb2 100644 --- a/lib/python/qmk/cli/chibios/__init__.py +++ b/lib/python/qmk/cli/chibios/__init__.py @@ -1 +0,0 @@ -from . import confmigrate diff --git a/lib/python/qmk/cli/format/__init__.py b/lib/python/qmk/cli/format/__init__.py index 741ec778b1..e69de29bb2 100644 --- a/lib/python/qmk/cli/format/__init__.py +++ b/lib/python/qmk/cli/format/__init__.py @@ -1 +0,0 @@ -from . import json diff --git a/lib/python/qmk/cli/generate/__init__.py b/lib/python/qmk/cli/generate/__init__.py index 0efca0022d..e69de29bb2 100644 --- a/lib/python/qmk/cli/generate/__init__.py +++ b/lib/python/qmk/cli/generate/__init__.py @@ -1,9 +0,0 @@ -from . import api -from . import config_h -from . import dfu_header -from . import docs -from . import info_json -from . import keyboard_h -from . import layouts -from . import rgb_breathe_table -from . import rules_mk diff --git a/lib/python/qmk/cli/list/__init__.py b/lib/python/qmk/cli/list/__init__.py index d83cd20b5b..e69de29bb2 100644 --- a/lib/python/qmk/cli/list/__init__.py +++ b/lib/python/qmk/cli/list/__init__.py @@ -1,2 +0,0 @@ -from . import keyboards -from . import keymaps diff --git a/lib/python/qmk/cli/new/__init__.py b/lib/python/qmk/cli/new/__init__.py index fe5d6fe483..e69de29bb2 100644 --- a/lib/python/qmk/cli/new/__init__.py +++ b/lib/python/qmk/cli/new/__init__.py @@ -1,2 +0,0 @@ -from . import keyboard -from . import keymap | 
