mirror of
https://github.com/qmk/qmk_firmware.git
synced 2024-11-22 11:29:26 +00:00
Initial DD keycode regen workflow (#19400)
This commit is contained in:
parent
422fd8aed8
commit
5a3594366f
33
.github/workflows/regen.yml
vendored
Normal file
33
.github/workflows/regen.yml
vendored
Normal file
@ -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)"
|
43
.github/workflows/regen_push.yml
vendored
Normal file
43
.github/workflows/regen_push.yml
vendored
Normal file
@ -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
|
|
9
util/regen.sh
Executable file
9
util/regen.sh
Executable file
@ -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
|
Loading…
Reference in New Issue
Block a user