Compare commits

...

14 Commits

Author SHA1 Message Date
Zach White b5e8aa4cac New release: 0.0.45 → 0.0.46 2021-05-08 21:04:06 -07:00
Zach White 1c6d81fc3b add hid and pyusb to the requirements 2021-05-08 21:03:31 -07:00
Erovia 0ffae74377 Merge pull request #49 from zvecr/env_command 2021-05-08 13:00:46 +02:00
zvecr cbe3ad0248 Expose is_qmk_firmware status 2021-04-08 23:41:12 +01:00
zvecr 97689b53d7 Add cli.config.general 2021-04-05 21:29:56 +01:00
zvecr 054e071787 Add env subcommand 2021-04-05 21:01:29 +01:00
QMK Bot 78e0fda2f0 New release: 0.0.44 → 0.0.45 2021-03-28 23:43:02 +00:00
Zach White 9c6123483b housekeeping 2021-03-28 16:23:15 -07:00
QMK Bot e851c8fcb5 New release: 0.0.43 → 0.0.44 2021-03-28 01:51:59 +00:00
QMK Bot 92168e1ef0 New release: 0.0.42 → 0.0.43 2021-03-28 01:41:34 +00:00
Zach White fd744ac24c Setup an action to publish a release 2021-03-27 18:38:47 -07:00
Zach White 840c791cc8 don't use sys.executable when running qmk doctor 2021-03-27 17:02:04 -07:00
Zach White 8f5b8e83c0 New release: 0.0.41 → 0.0.42 2021-03-27 13:03:22 -07:00
Zach White 1da98510d3 make the qmk_firmware check more robust 2021-03-27 11:34:36 -07:00
10 changed files with 118 additions and 36 deletions
+47
View File
@@ -0,0 +1,47 @@
# This workflow will upload a Python Package using Twine when a release is created
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
name: Upload Python Package
on:
workflow_dispatch:
inputs:
version_part:
description: 'Which part of the version to increment (patch, minor, major)'
required: true
default: 'patch'
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.7'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel
pip install -r requirements-dev.txt
- name: Bump version
run: |
git config --local user.email "hello@qmk.fm"
git config --local user.name "QMK Bot"
bumpversion ${{ github.event.inputs.version_part }}
- name: Push changes
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: master
tags: true
- name: Build and publish
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
python setup.py sdist bdist_wheel
twine upload dist/*
+10 -7
View File
@@ -1,5 +1,6 @@
# QMK CLI
[![CLI Setup](https://github.com/qmk/qmk_cli/workflows/CLI%20Setup/badge.svg)](https://github.com/qmk/qmk_cli/actions?query=workflow%3A%22CLI+Setup%22)
A program to help users work with [QMK Firmware](https://qmk.fm/).
# Features
@@ -8,15 +9,17 @@ A program to help users work with [QMK Firmware](https://qmk.fm/).
* Use `qmk clone` to pull down anyone's `qmk_firmware` fork
* Setup your build environment with `qmk setup`
* Check that your environment is correctly setup with `qmk doctor`
* Dispatches to `qmk_firmware/bin/qmk` for additional functionality:
* `qmk compile-json`
* More to come
* Integrates with your qmk_firmware for additional functionality:
* `qmk c2json`
* `qmk compile`
* `qmk flash`
* `qmk json2c`
* `qmk lint`
* `qmk new-keymap`
# Quickstart
Full documentation: <https://docs.qmk.fm/#/tutorial>
Basic steps:
* `python3 -m pip install qmk`
* `qmk setup`
Full documentation: <https://docs.qmk.fm/#/tutorial>
+1 -1
View File
@@ -1,3 +1,3 @@
"""A program to help you work with qmk_firmware."""
__version__ = '0.0.41'
__version__ = '0.0.46'
+19 -3
View File
@@ -8,6 +8,24 @@ from pathlib import Path
from milc import cli
def is_qmk_firmware(qmk_firmware):
"""Returns True if the given Path() is a qmk_firmware clone.
"""
paths = [
qmk_firmware,
qmk_firmware / 'quantum',
qmk_firmware / 'requirements.txt',
qmk_firmware / 'requirements-dev.txt',
qmk_firmware / 'lib/python/qmk/cli/doctor.py'
]
for path in paths:
if not path.exists():
return False
return True
def broken_module_imports():
"""Make sure we can import all the python modules.
"""
@@ -88,9 +106,7 @@ def in_qmk_firmware():
"""
cur_dir = Path.cwd()
while len(cur_dir.parents) > 0:
found_lib = cur_dir / 'lib/python/qmk/cli/__init__.py'
found_quantum = cur_dir / 'quantum'
if found_lib.is_file() and found_quantum.is_dir():
if is_qmk_firmware(cur_dir):
return cur_dir
# Move up a directory before the next iteration
+2 -2
View File
@@ -14,7 +14,7 @@ import milc
import milc.subcommand.config # noqa
from milc.questions import yesno
from .helpers import broken_module_imports, find_qmk_firmware
from .helpers import broken_module_imports, find_qmk_firmware, is_qmk_firmware
milc.EMOJI_LOGLEVELS['INFO'] = '{fg_blue}Ψ{style_reset_all}'
@@ -65,7 +65,7 @@ def main():
import qmk_cli.subcommands
# Check out and initialize the qmk_firmware environment
if qmk_firmware.exists():
if is_qmk_firmware(qmk_firmware):
# All subcommands are run relative to the qmk_firmware root to make it easier to use the right copy of qmk_firmware.
os.chdir(str(qmk_firmware))
+1
View File
@@ -3,4 +3,5 @@
We list each subcommand here explicitly because all the reliable ways of searching for modules are slow and delay startup.
"""
from . import clone # noqa
from . import env # noqa
from . import setup # noqa
+30
View File
@@ -0,0 +1,30 @@
"""Prints environment information.
"""
import os
from pathlib import Path
from milc import cli
from qmk_cli.helpers import is_qmk_firmware
@cli.argument('var', default=None, nargs='?', help='Optional variable to query')
@cli.subcommand('Prints environment information.')
def env(cli):
home = os.environ.get('QMK_HOME', "")
data = {
'QMK_HOME': home,
'QMK_FIRMWARE': home if is_qmk_firmware(Path(home)) else ""
}
# Now munge the current cli config
for key, val in cli.config.general.items():
converted_key = 'QMK_' + key.upper()
data[converted_key] = val
if cli.args.var:
# dump out requested arg
print(data[cli.args.var])
else:
# dump out everything
for key, val in data.items():
print(f'{key}="{val}"')
+2 -19
View File
@@ -9,6 +9,7 @@ from pathlib import Path
from milc import cli
from milc.questions import yesno
from qmk_cli.git import git_clone
from qmk_cli.helpers import is_qmk_firmware
default_base = 'https://github.com'
default_repo = 'qmk_firmware'
@@ -42,24 +43,6 @@ def git_upstream(destination):
return False
def is_qmk_firmware(qmk_firmware):
"""Returns True if the given Path() is a qmk_firmware clone.
"""
paths = [
qmk_firmware,
qmk_firmware / 'Makefile',
qmk_firmware / 'requirements.txt',
qmk_firmware / 'requirements-dev.txt',
qmk_firmware / 'lib/python/qmk/cli/doctor.py'
]
for path in paths:
if not path.exists():
return False
return True
@cli.argument('-n', '--no', arg_only=True, action='store_true', help='Answer no to all questions')
@cli.argument('-y', '--yes', arg_only=True, action='store_true', help='Answer yes to all questions')
@cli.argument('--baseurl', default=default_base, help='The URL all git operations start from. Default: %s' % default_base)
@@ -107,7 +90,7 @@ def setup(cli):
cli.write_config_option('user', 'qmk_home')
# Run `qmk doctor` to check the rest of the environment out
doctor_command = [sys.executable, sys.argv[0], 'doctor']
doctor_command = [sys.argv[0], 'doctor']
if cli.args.no:
doctor_command.append('--no')
+1 -1
View File
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 0.0.41
current_version = 0.0.46
commit = True
tag = True
tag_name = {new_version}
+5 -3
View File
@@ -24,7 +24,7 @@ if __name__ == "__main__":
long_description=long_description,
long_description_content_type="text/markdown",
packages=find_packages(),
py_modules=['milc'],
py_modules=['qmk_cli'],
classifiers=[
'Development Status :: 3 - Alpha',
'Environment :: Console',
@@ -45,11 +45,13 @@ if __name__ == "__main__":
"colorama",
"dotty-dict",
"flake8",
"hid",
"hjson",
"jsonschema>=3",
"milc>=1.0.8",
"milc>=1.3.0",
"nose2",
"pygments",
"pyusb",
"yapf"
],
]
)