Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CLI: update subcommands to use return instead of exit() #10323

Merged
merged 1 commit into from
Oct 6, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions lib/python/qmk/cli/doctor.py
Original file line number Diff line number Diff line change
Expand Up @@ -328,3 +328,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
11 changes: 4 additions & 7 deletions lib/python/qmk/cli/info.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,25 +134,22 @@ 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)

# 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
2 changes: 1 addition & 1 deletion lib/python/qmk/cli/json/keymap.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
4 changes: 2 additions & 2 deletions lib/python/qmk/cli/json2c.py
Original file line number Diff line number Diff line change
Expand Up @@ -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 == '-':
Expand Down
6 changes: 3 additions & 3 deletions lib/python/qmk/cli/kle2json.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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='',
Expand Down
2 changes: 1 addition & 1 deletion lib/python/qmk/cli/list/keymaps.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
6 changes: 3 additions & 3 deletions lib/python/qmk/cli/new/keymap.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 2 additions & 0 deletions lib/python/qmk/tests/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Ignore generated info.json from pytest
info.json
3 changes: 2 additions & 1 deletion lib/python/qmk/tests/test_cli_commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -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():
Expand Down