@ -0,0 +1,33 @@ | |||||
name: PR Regenerate Files | |||||
permissions: | |||||
contents: read | |||||
on: | |||||
pull_request: | |||||
paths: | |||||
- 'data/constants/**' | |||||
- 'lib/python/**' | |||||
jobs: | |||||
regen: | |||||
runs-on: ubuntu-latest | |||||
container: qmkfm/qmk_cli | |||||
steps: | |||||
- uses: actions/checkout@v3 | |||||
- name: Run qmk generators | |||||
run: | | |||||
util/regen.sh | |||||
git diff | |||||
- name: Fail when regeneration required | |||||
run: | | |||||
git diff | |||||
for file in $(git diff --name-only); do | |||||
echo "File '${file}' Requires Regeneration" | |||||
echo "::error file=${file}::Requires Regeneration" | |||||
done | |||||
test -z "$(git diff --name-only)" |
@ -0,0 +1,43 @@ | |||||
name: Regenerate Files | |||||
permissions: | |||||
contents: write | |||||
on: | |||||
push: | |||||
branches: | |||||
- master | |||||
- develop | |||||
jobs: | |||||
regen: | |||||
runs-on: ubuntu-latest | |||||
container: qmkfm/qmk_cli | |||||
steps: | |||||
- uses: actions/checkout@v3 | |||||
- name: Run qmk generators | |||||
run: | | |||||
util/regen.sh | |||||
git diff | |||||
- uses: rlespinasse/github-slug-action@v3.x | |||||
- name: Become QMK Bot | |||||
run: | | |||||
git config user.name 'QMK Bot' | |||||
git config user.email 'hello@qmk.fm' | |||||
- name: Create Pull Request | |||||
uses: peter-evans/create-pull-request@v4 | |||||
if: ${{ github.repository == 'qmk/qmk_firmware'}} | |||||
with: | |||||
token: ${{ secrets.QMK_BOT_TOKEN }} | |||||
delete-branch: true | |||||
branch: bugfix/format_${{ env.GITHUB_REF_SLUG }} | |||||
author: QMK Bot <hello@qmk.fm> | |||||
committer: QMK Bot <hello@qmk.fm> | |||||
commit-message: Regenerate Files | |||||
title: '[CI] Regenerate Files' |
@ -1,65 +0,0 @@ | |||||
from pathlib import Path | |||||
langs = set() | |||||
files = Path('quantum/keymap_extras/').glob('keymap_*.h') | |||||
for file in files: | |||||
langs.add(file.stem.replace('keymap_', '')) | |||||
for lang in langs: | |||||
try: | |||||
file = Path(f'quantum/keymap_extras/keymap_{lang}.h') | |||||
print(f'Reading:{file}') | |||||
collect = None | |||||
out = [] | |||||
out += ['{'] | |||||
out += [' "aliases": {'] | |||||
lines = file.read_text(encoding='utf-8').split('\n') | |||||
for line in lines: | |||||
if line.startswith("// Row"): | |||||
# print(line) | |||||
continue | |||||
elif line.startswith("/*******************************************************************************"): | |||||
raise Exception(f'Skipping:{file}') | |||||
elif '/*' in line: | |||||
collect = [line] | |||||
elif '*/' in line: | |||||
collect += [line] | |||||
if 'copyright' in collect[0].lower(): | |||||
collect = None | |||||
continue | |||||
out += collect | |||||
collect = None | |||||
elif collect: | |||||
collect += [line] | |||||
elif '#define' in line: | |||||
define = line.split() | |||||
while len(define) < 5: | |||||
define.append("") | |||||
if define[4] == "(backslash)": | |||||
define[4] = '\\\\' | |||||
define[4] = " ".join(define[4:]).strip() | |||||
define[4] = define[4].replace('"', '\\"') | |||||
if define[4]: | |||||
out += [f' "{define[2]}": {{'] | |||||
out += [f' "key": "{define[1]}",'] | |||||
out += [f' "label": "{define[4]}",'] | |||||
out += [f' }}'] | |||||
else: | |||||
out += [f' "{define[2]}": {{'] | |||||
out += [f' "key": "{define[1]}"'] | |||||
out += [f' }}'] | |||||
out += [' }'] | |||||
out += ['}'] | |||||
dump = Path(f'data/constants/keycodes/extras/keycodes_{lang}_0.0.1.hjson') | |||||
print(f'Writing:{dump}') | |||||
dump.write_text("\n".join(out), encoding='utf-8') | |||||
except Exception as e: | |||||
print(e) |
@ -1,8 +0,0 @@ | |||||
#!/bin/bash | |||||
for lang in $(find data/constants/keycodes/extras/ -type f -printf "%f\n" | sed "s/keycodes_//g" | sed "s/_[0-9].*//"); do | |||||
data=$(qmk generate-keycode-extras --version latest --lang $lang) | |||||
if [ "$?" == "0" ]; then | |||||
echo "$data" > quantum/keymap_extras/keymap_$lang.h | |||||
fi | |||||
done |
@ -0,0 +1,9 @@ | |||||
#!/bin/bash | |||||
set -e | |||||
qmk generate-rgb-breathe-table -o quantum/rgblight/rgblight_breathe_table.h | |||||
qmk generate-keycodes --version latest -o quantum/keycodes.h | |||||
for lang in $(find data/constants/keycodes/extras/ -type f -printf "%f\n" | sed "s/keycodes_\(.*\)_[0-9].*/\1/"); do | |||||
qmk generate-keycode-extras --version latest --lang $lang -o quantum/keymap_extras/keymap_$lang.h | |||||
done |