Compare commits

..

2 Commits

Author SHA1 Message Date
Nick Brassel b1820f803c mpire is a lost cause. 2025-03-21 00:12:59 +11:00
Nick Brassel 20286a7e2c Add new dependencies so downloading files is possible. 2024-11-15 06:16:42 +11:00
10 changed files with 24 additions and 116 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 1.1.7
current_version = 1.1.6
commit = True
tag = True
tag_name = {new_version}
+2 -2
View File
@@ -68,13 +68,13 @@ jobs:
- name: (MSYS2) Install Python dependencies
shell: msys2 {0}
run: |
python3 -m pip install --break-system-packages --force-reinstall --upgrade pip
python3 -m pip install --upgrade pip
- name: (MSYS2) Install QMK CLI from source
shell: msys2 {0}
run: |
python3 -m build
python3 -m pip install --break-system-packages dist/qmk-*.tar.gz
python3 -m pip install dist/qmk-*.tar.gz
- name: (MSYS2) Run qmk setup -y
shell: msys2 {0}
run: qmk setup -y
+1 -1
View File
@@ -46,7 +46,7 @@ jobs:
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Build and Push to Docker Hub
uses: docker/build-push-action@v6.15.0
uses: docker/build-push-action@v6.9.0
with:
context: .
push: true
+1 -1
View File
@@ -74,7 +74,7 @@ jobs:
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Build and Push to Docker Hub
uses: docker/build-push-action@v6.15.0
uses: docker/build-push-action@v6.9.0
with:
context: .
push: true
+1 -1
View File
@@ -1,3 +1,3 @@
"""A program to help you work with qmk_firmware."""
__version__ = '1.1.7'
__version__ = '1.1.6'
+2 -49
View File
@@ -1,8 +1,8 @@
"""Useful helper functions.
"""
import os
import json
from functools import lru_cache
from importlib.util import find_spec
from pathlib import Path
from milc import cli
@@ -26,7 +26,7 @@ def is_qmk_firmware(qmk_firmware):
return True
@lru_cache(maxsize=1)
@lru_cache(maxsize=2)
def find_qmk_firmware():
"""Look for qmk_firmware in the usual places.
@@ -47,7 +47,6 @@ def find_qmk_firmware():
return Path.home() / 'qmk_firmware'
@lru_cache(maxsize=1)
def in_qmk_firmware():
"""Returns the path to the qmk_firmware we are currently in, or None if we are not inside qmk_firmware.
"""
@@ -59,49 +58,3 @@ def in_qmk_firmware():
# Move up a directory before the next iteration
cur_dir = cur_dir / '..'
cur_dir = cur_dir.resolve()
def is_qmk_userspace(qmk_userspace):
"""Returns True if the given Path() is a qmk_userspace clone.
"""
path = qmk_userspace / 'qmk.json'
if not path.exists():
return False
try:
return 'userspace_version' in json.loads(path.read_text(encoding="UTF-8"))
except json.decoder.JSONDecodeError as e:
return False
@lru_cache(maxsize=1)
def find_qmk_userspace():
"""Look for qmk_userspace in the usual places.
"""
if in_qmk_userspace():
return in_qmk_userspace()
if cli.config.user.overlay_dir:
return Path(cli.config.user.overlay_dir).expanduser().resolve()
if 'QMK_USERSPACE' in os.environ:
path = Path(os.environ['QMK_USERSPACE']).expanduser()
if path.exists():
return path.resolve()
return path
return Path.home() / 'qmk_userspace'
@lru_cache(maxsize=1)
def in_qmk_userspace():
"""Returns the path to the qmk_userspace we are currently in, or None if we are not inside qmk_userspace.
"""
cur_dir = Path.cwd()
while len(cur_dir.parents) > 0:
if is_qmk_userspace(cur_dir):
return cur_dir
# Move up a directory before the next iteration
cur_dir = cur_dir / '..'
cur_dir = cur_dir.resolve()
+2 -16
View File
@@ -13,7 +13,7 @@ from traceback import print_exc
import milc
from . import __version__
from .helpers import find_qmk_firmware, is_qmk_firmware, find_qmk_userspace
from .helpers import find_qmk_firmware, is_qmk_firmware
milc.cli.milc_options(version=__version__)
milc.EMOJI_LOGLEVELS['INFO'] = '{fg_blue}Ψ{style_reset_all}'
@@ -52,28 +52,14 @@ def main():
if 'windows' in platform().lower():
msystem = os.environ.get('MSYSTEM', '')
# Assume the environment isn't workable by default
env_ok = False
# Check if we're using the mingw64/msys2 environment
if 'mingw64' in sys.executable and 'MINGW64' in msystem:
env_ok = True
# Check if we're using a `uv`-based environment
if '\\uv\\' in sys.executable or '/uv/' in sys.executable:
env_ok = True
# If none of the options above were true, then we're in an unsupported environment. Bomb out.
if not env_ok:
if 'mingw64' not in sys.executable or 'MINGW64' not in msystem:
print('ERROR: It seems you are not using the MINGW64 terminal.')
print('Please close this terminal and open a new MSYS2 MinGW 64-bit terminal.')
print('Python: %s, MSYSTEM: %s' % (sys.executable, msystem))
exit(1)
# Environment setup
qmk_userspace = find_qmk_userspace()
qmk_firmware = find_qmk_firmware()
os.environ['QMK_USERSPACE'] = str(qmk_userspace)
os.environ['QMK_HOME'] = str(qmk_firmware)
os.environ['ORIG_CWD'] = os.getcwd()
+2 -4
View File
@@ -4,18 +4,16 @@ import os
from pathlib import Path
from milc import cli
from qmk_cli.helpers import is_qmk_firmware, is_qmk_userspace
from qmk_cli.helpers import is_qmk_firmware
@cli.argument('var', arg_only=True, default=None, nargs='?', help='Optional variable to query')
@cli.subcommand('Prints environment information.')
def env(cli):
home = os.environ.get('QMK_HOME', "")
userspace = os.environ.get('QMK_USERSPACE', "")
data = {
'QMK_HOME': home,
'QMK_FIRMWARE': home if is_qmk_firmware(Path(home)) else "",
'QMK_USERSPACE': userspace if is_qmk_userspace(Path(userspace)) else ""
'QMK_FIRMWARE': home if is_qmk_firmware(Path(home)) else ""
}
# Now munge the current cli config
+8 -40
View File
@@ -5,10 +5,9 @@ import shlex
import subprocess
import sys
from pathlib import Path
from shutil import rmtree
from milc import cli
from milc.questions import choice, question, yesno
from milc.questions import yesno
from qmk_cli.git import git_clone
from qmk_cli.helpers import is_qmk_firmware
@@ -44,17 +43,6 @@ def git_upstream(destination):
return False
def git_clone_fork(fork, branch, force=False):
if force:
rmtree(cli.args.home)
git_url = '/'.join((cli.args.baseurl, fork))
if git_clone(git_url, cli.args.home, branch):
git_upstream(cli.args.home)
else:
exit(1)
@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', arg_only=True, default=default_base, help='The URL all git operations start from. Default: %s' % default_base)
@@ -73,34 +61,9 @@ def setup(cli):
cli.log.error("Can't use both --yes and --no at the same time.")
exit(1)
# Check on qmk_firmware
# If it exists, ask the user what to do with it
# 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 is_qmk_firmware(cli.args.home):
cli.log.info('Found qmk_firmware at %s.', str(cli.args.home))
found_prompt = "What do you want to do?"
found_options = [
f"Delete and reclone {cli.args.fork}",
"Delete and clone a different fork",
"Keep it and continue"
]
delete_confirm = "WARNING: This will delete your current qmk_firmware directory. Proceed?"
found_action = choice(found_prompt, options=found_options, default=2)
if found_action == f"Delete and reclone {cli.args.fork}":
if not yesno(delete_confirm, default=False):
exit(1)
git_clone_fork(cli.args.fork, cli.args.branch, force=True)
elif found_action == "Delete and clone a different fork":
fork_name = question("Enter the name of the fork:", default=cli.args.fork)
branch_name = question("Enter the branch name to clone:", default=cli.args.branch)
if not yesno(delete_confirm, default=False):
exit(1)
git_clone_fork(fork_name, branch_name, force=True)
# Exists (but not an empty dir)
elif cli.args.home.exists() and any(cli.args.home.iterdir()):
@@ -115,7 +78,12 @@ def setup(cli):
else:
cli.log.error('Could not find qmk_firmware!')
if yesno(clone_prompt):
git_clone_fork(cli.args.fork, cli.args.branch)
git_url = '/'.join((cli.args.baseurl, cli.args.fork))
if git_clone(git_url, cli.args.home, cli.args.branch):
git_upstream(cli.args.home)
else:
exit(1)
else:
cli.log.warning('Not cloning qmk_firmware due to user input or --no flag.')
+4 -1
View File
@@ -9,7 +9,7 @@ ignore = E501,E226
[metadata]
name = qmk
version = 1.1.7
version = 1.1.6
author = skullydazed
author_email = skullydazed@gmail.com
description = A program to help users work with QMK Firmware.
@@ -39,13 +39,16 @@ install_requires =
hid
milc>=1.9.0
pyusb
setuptools>=45
# qmk_firmware packages
dotty-dict
hjson
httpx
jsonschema>=4
pillow
pygments
pyserial
tqdm
packages = find:
python_requires = >=3.9