Compare commits
41 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c41fd5e940 | |||
| b70736a876 | |||
| 69b3b890d2 | |||
| 8b30a9766d | |||
| 982349a450 | |||
| 4d161c9ec4 | |||
| 047eb00594 | |||
| 558251860a | |||
| b685fe5d3f | |||
| e447fb4252 | |||
| 066a865084 | |||
| a1276f8d58 | |||
| 3555e34ae9 | |||
| b36cf144e3 | |||
| fb05b69adc | |||
| 4283c258d9 | |||
| b5e8aa4cac | |||
| 1c6d81fc3b | |||
| 0ffae74377 | |||
| cbe3ad0248 | |||
| 97689b53d7 | |||
| 054e071787 | |||
| 78e0fda2f0 | |||
| 9c6123483b | |||
| e851c8fcb5 | |||
| 92168e1ef0 | |||
| fd744ac24c | |||
| 840c791cc8 | |||
| 8f5b8e83c0 | |||
| 1da98510d3 | |||
| 6ec242b133 | |||
| 6433cbc0f4 | |||
| aedad7e602 | |||
| 504291bbf5 | |||
| c6e736adc7 | |||
| fe42ab3534 | |||
| d805fe2b6e | |||
| 5321a121fc | |||
| 3c31d41bf3 | |||
| c6977fa851 | |||
| 3b6c0fd058 |
@@ -14,7 +14,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [macos-latest, ubuntu-latest]
|
os: [macos-latest, ubuntu-latest]
|
||||||
python-version: [3.6, 3.7, 3.8]
|
python-version: [3.7, 3.8, 3.9]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v1
|
||||||
@@ -53,10 +53,9 @@ jobs:
|
|||||||
update: true
|
update: true
|
||||||
install: git mingw-w64-x86_64-toolchain mingw-w64-x86_64-python-pip
|
install: git mingw-w64-x86_64-toolchain mingw-w64-x86_64-python-pip
|
||||||
|
|
||||||
- name: (MSYS2) Upgrade pip and setuptools and install wheel
|
- name: (MSYS2) Install Python dependencies
|
||||||
shell: msys2 {0}
|
shell: msys2 {0}
|
||||||
run: |
|
run: |
|
||||||
python3 -m pip install --upgrade pip setuptools
|
|
||||||
python3 -m pip install wheel
|
python3 -m pip install wheel
|
||||||
|
|
||||||
- name: (MSYS2) Install QMK CLI from source
|
- name: (MSYS2) Install QMK CLI from source
|
||||||
|
|||||||
@@ -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/*
|
||||||
Vendored
+3
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"python.formatting.provider": "yapf"
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
# QMK CLI
|
# QMK CLI
|
||||||
[](https://github.com/qmk/qmk_cli/actions?query=workflow%3A%22CLI+Setup%22)
|
[](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/).
|
A program to help users work with [QMK Firmware](https://qmk.fm/).
|
||||||
|
|
||||||
# Features
|
# Features
|
||||||
@@ -8,10 +9,16 @@ A program to help users work with [QMK Firmware](https://qmk.fm/).
|
|||||||
* Use `qmk clone` to pull down anyone's `qmk_firmware` fork
|
* Use `qmk clone` to pull down anyone's `qmk_firmware` fork
|
||||||
* Setup your build environment with `qmk setup`
|
* Setup your build environment with `qmk setup`
|
||||||
* Check that your environment is correctly setup with `qmk doctor`
|
* Check that your environment is correctly setup with `qmk doctor`
|
||||||
* Dispatches to `qmk_firmware/bin/qmk` for additional functionality:
|
* Integrates with qmk_firmware for additional functionality:
|
||||||
* `qmk compile-json`
|
* `qmk compile`
|
||||||
* More to come
|
* `qmk console`
|
||||||
|
* `qmk flash`
|
||||||
|
* `qmk lint`
|
||||||
|
* ...and many more!
|
||||||
|
|
||||||
# Quickstart
|
# Quickstart
|
||||||
|
|
||||||
To be written.
|
* `python3 -m pip install qmk`
|
||||||
|
* `qmk setup`
|
||||||
|
|
||||||
|
Full documentation: <https://docs.qmk.fm/#/tutorial>
|
||||||
|
|||||||
+1
-1
@@ -1,3 +1,3 @@
|
|||||||
"""A program to help you work with qmk_firmware."""
|
"""A program to help you work with qmk_firmware."""
|
||||||
|
|
||||||
__version__ = '0.0.40'
|
__version__ = '0.0.52'
|
||||||
|
|||||||
+12
-4
@@ -16,17 +16,25 @@ def git_clone(url, destination, branch):
|
|||||||
'--recurse-submodules',
|
'--recurse-submodules',
|
||||||
'--branch=' + branch,
|
'--branch=' + branch,
|
||||||
url,
|
url,
|
||||||
destination,
|
str(destination),
|
||||||
]
|
]
|
||||||
cli.log.debug('Git clone command: %s', git_clone)
|
cli.log.debug('Git clone command: %s', git_clone)
|
||||||
|
|
||||||
with subprocess.Popen(git_clone, stderr=subprocess.STDOUT, stdout=subprocess.PIPE, bufsize=1, universal_newlines=True, encoding='utf-8') as p:
|
try:
|
||||||
for line in p.stdout:
|
with subprocess.Popen(git_clone, stderr=subprocess.STDOUT, stdout=subprocess.PIPE, bufsize=1, universal_newlines=True, encoding='utf-8') as p:
|
||||||
print(line, end='')
|
for line in p.stdout:
|
||||||
|
print(line, end='')
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
git_cmd = ' '.join([s.replace(' ', r'\ ') for s in git_clone])
|
||||||
|
|
||||||
|
cli.log.error("Could not run '%s': %s: %s", git_cmd, e.__class__.__name__, e)
|
||||||
|
return False
|
||||||
|
|
||||||
if p.returncode == 0:
|
if p.returncode == 0:
|
||||||
cli.log.info('Successfully cloned %s to %s!', url, destination)
|
cli.log.info('Successfully cloned %s to %s!', url, destination)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
else:
|
else:
|
||||||
cli.log.error('git clone exited %d', p.returncode)
|
cli.log.error('git clone exited %d', p.returncode)
|
||||||
return False
|
return False
|
||||||
|
|||||||
+14
-34
@@ -8,39 +8,22 @@ from pathlib import Path
|
|||||||
from milc import cli
|
from milc import cli
|
||||||
|
|
||||||
|
|
||||||
def find_broken_requirements(requirements):
|
def is_qmk_firmware(qmk_firmware):
|
||||||
""" Check if the modules in the given requirements.txt are available.
|
"""Returns True if the given Path() is a qmk_firmware clone.
|
||||||
|
|
||||||
Args:
|
|
||||||
|
|
||||||
requirements
|
|
||||||
The path to a requirements.txt file
|
|
||||||
|
|
||||||
Returns a list of modules that couldn't be imported
|
|
||||||
"""
|
"""
|
||||||
with Path(requirements).open() as fd:
|
paths = [
|
||||||
broken_modules = []
|
qmk_firmware,
|
||||||
|
qmk_firmware / 'quantum',
|
||||||
|
qmk_firmware / 'requirements.txt',
|
||||||
|
qmk_firmware / 'requirements-dev.txt',
|
||||||
|
qmk_firmware / 'lib/python/qmk/cli/__init__.py'
|
||||||
|
]
|
||||||
|
|
||||||
for line in fd.readlines():
|
for path in paths:
|
||||||
line = line.strip().replace('<', '=').replace('>', '=')
|
if not path.exists():
|
||||||
|
return False
|
||||||
|
|
||||||
if len(line) == 0 or line[0] == '#' or line.startswith('-r'):
|
return True
|
||||||
continue
|
|
||||||
|
|
||||||
if '#' in line:
|
|
||||||
line = line.split('#')[0]
|
|
||||||
|
|
||||||
module_name = line.split('=')[0] if '=' in line else line
|
|
||||||
module_import_name = module_name.replace('-', '_')
|
|
||||||
|
|
||||||
# Not every module is importable by its own name.
|
|
||||||
if module_name == "pep8-naming":
|
|
||||||
module_import_name = "pep8ext_naming"
|
|
||||||
|
|
||||||
if not find_spec(module_import_name):
|
|
||||||
broken_modules.append(module_name)
|
|
||||||
|
|
||||||
return broken_modules
|
|
||||||
|
|
||||||
|
|
||||||
@lru_cache(maxsize=2)
|
@lru_cache(maxsize=2)
|
||||||
@@ -64,15 +47,12 @@ def find_qmk_firmware():
|
|||||||
return Path.home() / 'qmk_firmware'
|
return Path.home() / 'qmk_firmware'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def in_qmk_firmware():
|
def in_qmk_firmware():
|
||||||
"""Returns the path to the qmk_firmware we are currently in, or None if we are not inside qmk_firmware.
|
"""Returns the path to the qmk_firmware we are currently in, or None if we are not inside qmk_firmware.
|
||||||
"""
|
"""
|
||||||
cur_dir = Path.cwd()
|
cur_dir = Path.cwd()
|
||||||
while len(cur_dir.parents) > 0:
|
while len(cur_dir.parents) > 0:
|
||||||
found_lib = cur_dir / 'lib/python/qmk/cli/__init__.py'
|
if is_qmk_firmware(cur_dir):
|
||||||
found_quantum = cur_dir / 'quantum'
|
|
||||||
if found_lib.is_file() and found_quantum.is_dir():
|
|
||||||
return cur_dir
|
return cur_dir
|
||||||
|
|
||||||
# Move up a directory before the next iteration
|
# Move up a directory before the next iteration
|
||||||
|
|||||||
+31
-39
@@ -4,18 +4,24 @@
|
|||||||
This program can be run from anywhere, with or without a qmk_firmware repository. If a qmk_firmware repository can be located we will use that to augment our available subcommands.
|
This program can be run from anywhere, with or without a qmk_firmware repository. If a qmk_firmware repository can be located we will use that to augment our available subcommands.
|
||||||
"""
|
"""
|
||||||
import os
|
import os
|
||||||
|
import shlex
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
from platform import platform
|
from platform import platform
|
||||||
from traceback import print_exc
|
from traceback import print_exc
|
||||||
|
|
||||||
import milc
|
import milc
|
||||||
import milc.subcommand.config # noqa
|
|
||||||
|
|
||||||
from .helpers import find_broken_requirements, find_qmk_firmware, in_qmk_firmware
|
from . import __version__
|
||||||
|
from .helpers import find_qmk_firmware, is_qmk_firmware
|
||||||
|
|
||||||
|
milc.set_metadata(version=__version__)
|
||||||
milc.EMOJI_LOGLEVELS['INFO'] = '{fg_blue}Ψ{style_reset_all}'
|
milc.EMOJI_LOGLEVELS['INFO'] = '{fg_blue}Ψ{style_reset_all}'
|
||||||
|
|
||||||
|
# These must happen after the milc.set_metadata() call
|
||||||
|
import milc.subcommand.config # noqa, must come after milc.set_metadata()
|
||||||
|
from milc.questions import yesno
|
||||||
|
|
||||||
|
|
||||||
@milc.cli.entrypoint('CLI wrapper for running QMK commands.')
|
@milc.cli.entrypoint('CLI wrapper for running QMK commands.')
|
||||||
def qmk_main(cli):
|
def qmk_main(cli):
|
||||||
@@ -24,14 +30,25 @@ def qmk_main(cli):
|
|||||||
cli.print_help()
|
cli.print_help()
|
||||||
|
|
||||||
|
|
||||||
|
def run_cmd(*command):
|
||||||
|
"""Run a command in a subshell.
|
||||||
|
"""
|
||||||
|
if 'windows' in milc.cli.platform.lower():
|
||||||
|
safecmd = map(shlex.quote, command)
|
||||||
|
safecmd = ' '.join(safecmd)
|
||||||
|
command = [os.environ['SHELL'], '-c', safecmd]
|
||||||
|
|
||||||
|
return subprocess.run(command)
|
||||||
|
|
||||||
|
|
||||||
# Python setuptools entrypoint
|
# Python setuptools entrypoint
|
||||||
def main():
|
def main():
|
||||||
"""Setup the environment before dispatching to the entrypoint.
|
"""Setup the environment before dispatching to the entrypoint.
|
||||||
"""
|
"""
|
||||||
# Warn if they use an outdated python version
|
# Warn if they use an outdated python version
|
||||||
if sys.version_info < (3, 6):
|
if sys.version_info < (3, 7):
|
||||||
print('Warning: Your Python version is out of date! Some subcommands may not work!')
|
print('Warning: Your Python version is out of date! Some subcommands may not work!')
|
||||||
print('Please upgrade to Python 3.6 or later.')
|
print('Please upgrade to Python 3.7 or later.')
|
||||||
|
|
||||||
if 'windows' in platform().lower():
|
if 'windows' in platform().lower():
|
||||||
msystem = os.environ.get('MSYSTEM', '')
|
msystem = os.environ.get('MSYSTEM', '')
|
||||||
@@ -43,8 +60,6 @@ def main():
|
|||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
# Environment setup
|
# Environment setup
|
||||||
import qmk_cli
|
|
||||||
milc.cli.version = qmk_cli.__version__
|
|
||||||
qmk_firmware = find_qmk_firmware()
|
qmk_firmware = find_qmk_firmware()
|
||||||
os.environ['QMK_HOME'] = str(qmk_firmware)
|
os.environ['QMK_HOME'] = str(qmk_firmware)
|
||||||
os.environ['ORIG_CWD'] = os.getcwd()
|
os.environ['ORIG_CWD'] = os.getcwd()
|
||||||
@@ -52,44 +67,21 @@ def main():
|
|||||||
import qmk_cli.subcommands
|
import qmk_cli.subcommands
|
||||||
|
|
||||||
# Check out and initialize the qmk_firmware environment
|
# 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.
|
# 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))
|
os.chdir(str(qmk_firmware))
|
||||||
|
sys.path.append(str(qmk_firmware / 'lib/python'))
|
||||||
|
|
||||||
# Check to make sure we have all the requirements
|
try:
|
||||||
broken_modules = find_broken_requirements('requirements.txt')
|
import qmk.cli # noqa
|
||||||
broken_dev_modules = find_broken_requirements('requirements-dev.txt') if milc.cli.config.user.developer else []
|
|
||||||
|
|
||||||
if broken_modules or broken_dev_modules:
|
except ImportError as e:
|
||||||
for module in broken_modules + broken_dev_modules:
|
if qmk_firmware.name != 'qmk_firmware':
|
||||||
print('Could not find module %s!' % module)
|
print('Warning: %s does not end in "qmk_firmware". Do you need to set QMK_HOME to "%s/qmk_firmware"?' % (qmk_firmware, qmk_firmware))
|
||||||
|
|
||||||
msg_install = 'Please run `python3 -m pip install -r %s` to install required python dependencies.'
|
print('Error: %s: %s', (e.__class__.__name__, e))
|
||||||
if broken_modules:
|
print_exc()
|
||||||
print()
|
sys.exit(1)
|
||||||
print(msg_install % (qmk_firmware / 'requirements.txt',))
|
|
||||||
|
|
||||||
if broken_dev_modules:
|
|
||||||
print()
|
|
||||||
print(msg_install % (qmk_firmware / 'requirements-dev.txt',))
|
|
||||||
print('You can also turn off developer mode: qmk config user.developer=None')
|
|
||||||
|
|
||||||
print()
|
|
||||||
|
|
||||||
else:
|
|
||||||
# Environment looks good, include the qmk_firmware subcommands
|
|
||||||
sys.path.append(str(qmk_firmware / 'lib/python'))
|
|
||||||
|
|
||||||
try:
|
|
||||||
import qmk.cli
|
|
||||||
|
|
||||||
except ImportError as e:
|
|
||||||
if qmk_firmware.name != 'qmk_firmware':
|
|
||||||
print('Warning: %s does not end in "qmk_firmware". Do you need to set QMK_HOME to "%s/qmk_firmware"?' % (qmk_firmware, qmk_firmware))
|
|
||||||
|
|
||||||
print('Error: %s: %s', (e.__class__.__name__, e))
|
|
||||||
print_exc()
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
# Call the entrypoint
|
# Call the entrypoint
|
||||||
return_code = milc.cli()
|
return_code = milc.cli()
|
||||||
|
|||||||
@@ -2,5 +2,6 @@
|
|||||||
|
|
||||||
We list each subcommand here explicitly because all the reliable ways of searching for modules are slow and delay startup.
|
We list each subcommand here explicitly because all the reliable ways of searching for modules are slow and delay startup.
|
||||||
"""
|
"""
|
||||||
from . import clone
|
from . import clone # noqa
|
||||||
from . import setup
|
from . import env # noqa
|
||||||
|
from . import setup # noqa
|
||||||
|
|||||||
@@ -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}"')
|
||||||
@@ -9,6 +9,7 @@ from pathlib import Path
|
|||||||
from milc import cli
|
from milc import cli
|
||||||
from milc.questions import yesno
|
from milc.questions import yesno
|
||||||
from qmk_cli.git import git_clone
|
from qmk_cli.git import git_clone
|
||||||
|
from qmk_cli.helpers import is_qmk_firmware
|
||||||
|
|
||||||
default_base = 'https://github.com'
|
default_base = 'https://github.com'
|
||||||
default_repo = 'qmk_firmware'
|
default_repo = 'qmk_firmware'
|
||||||
@@ -61,8 +62,18 @@ def setup(cli):
|
|||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
# Check on qmk_firmware, and if it doesn't exist offer to check it out.
|
# Check on qmk_firmware, and if it doesn't exist offer to check it out.
|
||||||
if (cli.args.home / 'Makefile').exists():
|
if is_qmk_firmware(cli.args.home):
|
||||||
cli.log.info('Found qmk_firmware at %s.', str(cli.args.home))
|
cli.log.info('Found qmk_firmware at %s.', str(cli.args.home))
|
||||||
|
|
||||||
|
elif cli.args.home.exists():
|
||||||
|
path_str = str(cli.args.home)
|
||||||
|
|
||||||
|
if cli.args.home.name != 'qmk_firmware':
|
||||||
|
cli.log.warning('Warning: %s does not end in "qmk_firmware". Did you mean to use "--home %s/qmk_firmware"?' % (path_str, path_str))
|
||||||
|
|
||||||
|
cli.log.error("Path '%s' exists but is not a qmk_firmware clone!", path_str)
|
||||||
|
exit(1)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
cli.log.error('Could not find qmk_firmware!')
|
cli.log.error('Could not find qmk_firmware!')
|
||||||
if yesno(clone_prompt):
|
if yesno(clone_prompt):
|
||||||
@@ -74,18 +85,20 @@ def setup(cli):
|
|||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
# Offer to set `user.qmk_home` for them.
|
# Offer to set `user.qmk_home` for them.
|
||||||
if cli.args.home != Path(os.environ['QMK_HOME']) and yesno(home_prompt):
|
if str(cli.args.home) != os.environ['QMK_HOME'] and yesno(home_prompt):
|
||||||
cli.config['user']['qmk_home'] = str(cli.args.home.absolute())
|
cli.config['user']['qmk_home'] = str(cli.args.home.absolute())
|
||||||
|
cli.config_source['user']['qmk_home'] = 'config_file'
|
||||||
cli.write_config_option('user', 'qmk_home')
|
cli.write_config_option('user', 'qmk_home')
|
||||||
|
|
||||||
# Run `qmk_firmware/bin/qmk doctor` to check the rest of the environment out
|
# Run `qmk doctor` to check the rest of the environment out
|
||||||
qmk_bin = cli.args.home / 'bin/qmk'
|
color = '--color' if cli.config.general.color else '--no-color'
|
||||||
doctor_cmd = [sys.executable, qmk_bin.as_posix(), 'doctor']
|
unicode = '--unicode' if cli.config.general.unicode else '--no-unicode'
|
||||||
|
doctor_command = [Path(sys.argv[0]).as_posix(), color, unicode, 'doctor']
|
||||||
if cli.args.yes:
|
|
||||||
doctor_cmd.append('--yes')
|
|
||||||
|
|
||||||
if cli.args.no:
|
if cli.args.no:
|
||||||
doctor_cmd.append('--no')
|
doctor_command.append('--no')
|
||||||
|
|
||||||
subprocess.run(doctor_cmd)
|
if cli.args.yes:
|
||||||
|
doctor_command.append('--yes')
|
||||||
|
|
||||||
|
cli.run(doctor_command, capture_output=False)
|
||||||
|
|||||||
@@ -1,35 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
# Increment the verison number and release a new version of qmk_cli.
|
# Increment the verison number and release a new version of qmk_cli.
|
||||||
#
|
#
|
||||||
# Required packages: pip3 install bumpversion twine
|
# Required packages: pip3 install bumpversion twine
|
||||||
|
|
||||||
set -e
|
echo "Use the github action instead!"
|
||||||
set -x
|
exit 1
|
||||||
|
|
||||||
PYPI_USERNAME=${PYPI_USERNAME:=skully}
|
|
||||||
FLIT_USERNAME=$PYPI_USERNAME
|
|
||||||
TWINE_USERNAME=$PYPI_USERNAME
|
|
||||||
|
|
||||||
export FLIT_USERNAME TWINE_USERNAME
|
|
||||||
|
|
||||||
if ! bumpversion -h &> /dev/null; then
|
|
||||||
echo "Missing bumpversion! Please run: pip3 install -U -r requirements-dev.txt"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! twine -h &> /dev/null; then
|
|
||||||
echo "Missing twine! Please run: pip3 install -U -r requirements-dev.txt"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Bump the version, tag, and push
|
|
||||||
rm -f dist/*
|
|
||||||
bumpversion patch
|
|
||||||
git push origin master --tags
|
|
||||||
|
|
||||||
# For now we don't use flit
|
|
||||||
#flit publish
|
|
||||||
|
|
||||||
# Use setuptools until flit works with homebrew
|
|
||||||
python3 setup.py sdist bdist_wheel
|
|
||||||
twine upload dist/qmk-*
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
[bumpversion]
|
[bumpversion]
|
||||||
current_version = 0.0.40
|
current_version = 0.0.52
|
||||||
commit = True
|
commit = True
|
||||||
tag = True
|
tag = True
|
||||||
tag_name = {new_version}
|
tag_name = {new_version}
|
||||||
@@ -23,7 +23,7 @@ dist-name = qmk
|
|||||||
license_file = LICENSE
|
license_file = LICENSE
|
||||||
module = qmk_cli
|
module = qmk_cli
|
||||||
home-page = https://github.com/qmk/qmk_cli
|
home-page = https://github.com/qmk/qmk_cli
|
||||||
requires-python = >=3.5
|
requires-python = >=3.7
|
||||||
|
|
||||||
[entry_points]
|
[entry_points]
|
||||||
qmk = qmk_cli.script_qmk:main
|
qmk = qmk_cli.script_qmk:main
|
||||||
|
|||||||
@@ -7,12 +7,12 @@ metadata = setup_cfg['metadata']
|
|||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
with open('README.md', encoding='utf-8') as readme_file:
|
with open('README.md', encoding='utf-8') as readme_file:
|
||||||
long_description=readme_file.read()
|
long_description = readme_file.read()
|
||||||
setup(
|
setup(
|
||||||
name=metadata['dist-name'],
|
name=metadata['dist-name'],
|
||||||
description='A program to help users work with QMK Firmware.',
|
description='A program to help users work with QMK Firmware.',
|
||||||
entry_points={
|
entry_points={
|
||||||
'console_scripts': ['%s = %s' % l for l in setup_cfg['entry_points'].items()],
|
'console_scripts': ['%s = %s' % i for i in setup_cfg['entry_points'].items()],
|
||||||
},
|
},
|
||||||
license='MIT License',
|
license='MIT License',
|
||||||
url=metadata['home-page'],
|
url=metadata['home-page'],
|
||||||
@@ -24,7 +24,7 @@ if __name__ == "__main__":
|
|||||||
long_description=long_description,
|
long_description=long_description,
|
||||||
long_description_content_type="text/markdown",
|
long_description_content_type="text/markdown",
|
||||||
packages=find_packages(),
|
packages=find_packages(),
|
||||||
py_modules = ['milc'],
|
py_modules=['qmk_cli'],
|
||||||
classifiers=[
|
classifiers=[
|
||||||
'Development Status :: 3 - Alpha',
|
'Development Status :: 3 - Alpha',
|
||||||
'Environment :: Console',
|
'Environment :: Console',
|
||||||
@@ -38,18 +38,17 @@ if __name__ == "__main__":
|
|||||||
'Topic :: Software Development',
|
'Topic :: Software Development',
|
||||||
'Topic :: Utilities',
|
'Topic :: Utilities',
|
||||||
],
|
],
|
||||||
requires_python=metadata['requires-python'],
|
python_requires=metadata['requires-python'],
|
||||||
install_requires=[
|
install_requires=[
|
||||||
"appdirs",
|
|
||||||
"argcomplete",
|
|
||||||
"colorama",
|
|
||||||
"dotty-dict",
|
"dotty-dict",
|
||||||
"flake8",
|
"flake8",
|
||||||
|
"hid",
|
||||||
"hjson",
|
"hjson",
|
||||||
"jsonschema>=3",
|
"jsonschema>=3",
|
||||||
"milc>=1.0.8",
|
"milc>=1.4.0",
|
||||||
"nose2",
|
"nose2",
|
||||||
"pygments",
|
"pygments",
|
||||||
|
"pyusb",
|
||||||
"yapf"
|
"yapf"
|
||||||
],
|
]
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user