@ -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 |