forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1,051 changed files
with
37,973 additions
and
5,594 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -70,3 +70,6 @@ util/Win_Check_Output.txt | |
secrets.tar | ||
id_rsa_* | ||
/.vs | ||
|
||
# python things | ||
__pycache__ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
#!/usr/bin/env python3 | ||
"""CLI wrapper for running QMK commands. | ||
""" | ||
import os | ||
import subprocess | ||
import sys | ||
from glob import glob | ||
from time import strftime | ||
from importlib import import_module | ||
from importlib.util import find_spec | ||
|
||
# Add the QMK python libs to our path | ||
script_dir = os.path.dirname(os.path.realpath(__file__)) | ||
qmk_dir = os.path.abspath(os.path.join(script_dir, '..')) | ||
python_lib_dir = os.path.abspath(os.path.join(qmk_dir, 'lib', 'python')) | ||
sys.path.append(python_lib_dir) | ||
|
||
# Change to the root of our checkout | ||
os.environ['ORIG_CWD'] = os.getcwd() | ||
os.chdir(qmk_dir) | ||
|
||
# Make sure our modules have been setup | ||
with open('requirements.txt', 'r') as fd: | ||
for line in fd.readlines(): | ||
line = line.strip().replace('<', '=').replace('>', '=') | ||
|
||
if line[0] == '#': | ||
continue | ||
|
||
if '#' in line: | ||
line = line.split('#')[0] | ||
|
||
module = line.split('=')[0] if '=' in line else line | ||
if not find_spec(module): | ||
print('Your QMK build environment is not fully setup!\n') | ||
print('Please run `./util/qmk_install.sh` to setup QMK.') | ||
exit(255) | ||
|
||
# Figure out our version | ||
command = ['git', 'describe', '--abbrev=6', '--dirty', '--always', '--tags'] | ||
result = subprocess.run(command, text=True, capture_output=True) | ||
|
||
if result.returncode == 0: | ||
os.environ['QMK_VERSION'] = 'QMK ' + result.stdout.strip() | ||
else: | ||
os.environ['QMK_VERSION'] = 'QMK ' + strftime('%Y-%m-%d-%H:%M:%S') | ||
|
||
# Setup the CLI | ||
import milc | ||
milc.EMOJI_LOGLEVELS['INFO'] = '{fg_blue}ψ{style_reset_all}' | ||
|
||
# If we were invoked as `qmk <cmd>` massage sys.argv into `qmk-<cmd>`. | ||
# This means we can't accept arguments to the qmk script itself. | ||
script_name = os.path.basename(sys.argv[0]) | ||
if script_name == 'qmk': | ||
if len(sys.argv) == 1: | ||
milc.cli.log.error('No subcommand specified!\n') | ||
|
||
if len(sys.argv) == 1 or sys.argv[1] in ['-h', '--help']: | ||
milc.cli.echo('usage: qmk <subcommand> [...]') | ||
milc.cli.echo('\nsubcommands:') | ||
subcommands = glob(os.path.join(qmk_dir, 'bin', 'qmk-*')) | ||
for subcommand in sorted(subcommands): | ||
subcommand = os.path.basename(subcommand).split('-', 1)[1] | ||
milc.cli.echo('\t%s', subcommand) | ||
milc.cli.echo('\nqmk <subcommand> --help for more information') | ||
exit(1) | ||
|
||
if sys.argv[1] in ['-V', '--version']: | ||
milc.cli.echo(os.environ['QMK_VERSION']) | ||
exit(0) | ||
|
||
sys.argv[0] = script_name = '-'.join((script_name, sys.argv[1])) | ||
del sys.argv[1] | ||
|
||
# Look for which module to import | ||
if script_name == 'qmk': | ||
milc.cli.print_help() | ||
exit(0) | ||
elif not script_name.startswith('qmk-'): | ||
milc.cli.log.error('Invalid symlink, must start with "qmk-": %s', script_name) | ||
else: | ||
subcommand = script_name.replace('-', '.').replace('_', '.').split('.') | ||
subcommand.insert(1, 'cli') | ||
subcommand = '.'.join(subcommand) | ||
|
||
try: | ||
import_module(subcommand) | ||
except ModuleNotFoundError as e: | ||
if e.__class__.__name__ != subcommand: | ||
raise | ||
|
||
milc.cli.log.error('Invalid subcommand! Could not import %s.', subcommand) | ||
exit(1) | ||
|
||
if __name__ == '__main__': | ||
milc.cli() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
qmk |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
qmk |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
qmk |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
qmk |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# Look for a json keymap file | ||
ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.json)","") | ||
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c | ||
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_5)/keymap.json | ||
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5) | ||
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.json)","") | ||
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c | ||
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_4)/keymap.json | ||
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4) | ||
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.json)","") | ||
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c | ||
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_3)/keymap.json | ||
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3) | ||
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.json)","") | ||
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c | ||
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_2)/keymap.json | ||
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2) | ||
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.json)","") | ||
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c | ||
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_1)/keymap.json | ||
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1) | ||
endif | ||
|
||
# Generate the keymap.c | ||
ifneq ("$(KEYMAP_JSON)","") | ||
_ = $(shell test -e $(KEYMAP_C) || bin/qmk-json-keymap $(KEYMAP_JSON) -o $(KEYMAP_C)) | ||
endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.