~ruther/qmk_firmware

2c9ffd47391b8dec98db94bef9b2f5c14a57cf94 — Ryan 4 years ago 2013f63
CLI: update subcommands to use return instead of exit() (#10323)

M lib/python/qmk/cli/doctor.py => lib/python/qmk/cli/doctor.py +2 -0
@@ 364,3 364,5 @@ def doctor(cli):
    else:
        cli.log.info('{fg_yellow}Problems detected, please fix these problems before proceeding.')
        # FIXME(skullydazed/unclaimed): Link to a document about troubleshooting, or discord or something

    return ok

M lib/python/qmk/cli/info.py => lib/python/qmk/cli/info.py +4 -7
@@ 134,11 134,11 @@ def info(cli):
    if not cli.config.info.keyboard:
        cli.log.error('Missing paramater: --keyboard')
        cli.subcommands['info'].print_help()
        exit(1)
        return False

    if not is_keyboard(cli.config.info.keyboard):
        cli.log.error('Invalid keyboard: "%s"', cli.config.info.keyboard)
        exit(1)
        return False

    # Build the info.json file
    kb_info_json = info_json(cli.config.info.keyboard)


@@ 146,13 146,10 @@ def info(cli):
    # Output in the requested format
    if cli.args.format == 'json':
        print(json.dumps(kb_info_json))
        exit()

    if cli.args.format == 'text':
    elif cli.args.format == 'text':
        print_text_output(kb_info_json)

    elif cli.args.format == 'friendly':
        print_friendly_output(kb_info_json)

    else:
        cli.log.error('Unknown format: %s', cli.args.format)
        return False

M lib/python/qmk/cli/json/keymap.py => lib/python/qmk/cli/json/keymap.py +1 -1
@@ 13,4 13,4 @@ def json_keymap(cli):
    """Renamed to `qmk json2c`.
    """
    cli.log.error('This command has been renamed to `qmk json2c`.')
    exit(1)
    return False

M lib/python/qmk/cli/json2c.py => lib/python/qmk/cli/json2c.py +2 -2
@@ 22,12 22,12 @@ def json2c(cli):
        # TODO(skullydazed/anyone): Read file contents from STDIN
        cli.log.error('Reading from STDIN is not (yet) supported.')
        cli.print_usage()
        exit(1)
        return False

    if not cli.args.filename.exists():
        cli.log.error('JSON file does not exist!')
        cli.print_usage()
        exit(1)
        return False

    # Environment processing
    if cli.args.output and cli.args.output.name == '-':

M lib/python/qmk/cli/kle2json.py => lib/python/qmk/cli/kle2json.py +3 -3
@@ 37,7 37,8 @@ def kle2json(cli):
        file_path = Path(os.environ['ORIG_CWD'], cli.args.filename)
    # Check for valid file_path for more graceful failure
    if not file_path.exists():
        return cli.log.error('File {fg_cyan}%s{style_reset_all} was not found.', file_path)
        cli.log.error('File {fg_cyan}%s{style_reset_all} was not found.', file_path)
        return False
    out_path = file_path.parent
    raw_code = file_path.open().read()
    # Check if info.json exists, allow overwrite with force


@@ 50,8 51,7 @@ def kle2json(cli):
    except Exception as e:
        cli.log.error('Could not parse KLE raw data: %s', raw_code)
        cli.log.exception(e)
        # FIXME: This should be better
        return cli.log.error('Could not parse KLE raw data.')
        return False
    keyboard = OrderedDict(
        keyboard_name=kle.name,
        url='',

M lib/python/qmk/cli/list/keymaps.py => lib/python/qmk/cli/list/keymaps.py +1 -1
@@ 15,7 15,7 @@ def list_keymaps(cli):
    """
    if not is_keyboard(cli.config.list_keymaps.keyboard):
        cli.log.error('Keyboard %s does not exist!', cli.config.list_keymaps.keyboard)
        exit(1)
        return False

    for name in qmk.keymap.list_keymaps(cli.config.list_keymaps.keyboard):
        print(name)

M lib/python/qmk/cli/new/keymap.py => lib/python/qmk/cli/new/keymap.py +3 -3
@@ 29,15 29,15 @@ def new_keymap(cli):
    # check directories
    if not kb_path.exists():
        cli.log.error('Keyboard %s does not exist!', kb_path)
        exit(1)
        return False

    if not keymap_path_default.exists():
        cli.log.error('Keyboard default %s does not exist!', keymap_path_default)
        exit(1)
        return False

    if keymap_path_new.exists():
        cli.log.error('Keymap %s already exists!', keymap_path_new)
        exit(1)
        return False

    # create user directory with default keymap files
    shutil.copytree(keymap_path_default, keymap_path_new, symlinks=True)

A lib/python/qmk/tests/.gitignore => lib/python/qmk/tests/.gitignore +2 -0
@@ 0,0 1,2 @@
# Ignore generated info.json from pytest
info.json

M lib/python/qmk/tests/test_cli_commands.py => lib/python/qmk/tests/test_cli_commands.py +2 -1
@@ 45,8 45,9 @@ def test_config():


def test_kle2json():
    result = check_subcommand('kle2json', 'kle.txt', '-f')
    result = check_subcommand('kle2json', 'lib/python/qmk/tests/kle.txt', '-f')
    check_returncode(result)
    assert 'Wrote out' in result.stdout


def test_doctor():