From fefd7fdc5145b677da7b0e1d75bab11eac9db605 Mon Sep 17 00:00:00 2001 From: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com> Date: Thu, 4 Nov 2021 22:14:43 +0100 Subject: Refactor new-keyboard to be python3.7 compatible (#14707) * Use copy_tree from distutils for python 3.7 support * Bump python version in docs * Changed new-keyboard to use printf-style format strings * Use username for manunfacturer / maintainer * Update lib/python/qmk/cli/new/keyboard.py Co-authored-by: Zach White Co-authored-by: Zach White --- data/templates/avr/config.h | 22 +++--------- data/templates/avr/readme.md | 10 +++--- data/templates/base/%(KEYBOARD)s.c | 4 +++ data/templates/base/%(KEYBOARD)s.h | 22 ++++++++++++ data/templates/base/info.json | 4 +-- data/templates/base/keyboard.c | 17 ---------- data/templates/base/keyboard.h | 35 ------------------- data/templates/base/keymaps/default/keymap.c | 48 +++------------------------ data/templates/base/keymaps/default/readme.md | 2 +- data/templates/ps2avrgb/config.h | 22 +++--------- data/templates/ps2avrgb/readme.md | 10 +++--- 11 files changed, 51 insertions(+), 145 deletions(-) create mode 100644 data/templates/base/%(KEYBOARD)s.c create mode 100644 data/templates/base/%(KEYBOARD)s.h delete mode 100644 data/templates/base/keyboard.c delete mode 100644 data/templates/base/keyboard.h (limited to 'data') diff --git a/data/templates/avr/config.h b/data/templates/avr/config.h index 4192bbcfa2..7c15e8e704 100644 --- a/data/templates/avr/config.h +++ b/data/templates/avr/config.h @@ -1,19 +1,5 @@ -/* -Copyright %YEAR% %YOUR_NAME% - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ +// Copyright %(YEAR)s %(YOUR_NAME)s (@%(USER_NAME)s) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once @@ -23,8 +9,8 @@ along with this program. If not, see . #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x0000 #define DEVICE_VER 0x0001 -#define MANUFACTURER %YOUR_NAME% -#define PRODUCT %KEYBOARD% +#define MANUFACTURER %(USER_NAME)s +#define PRODUCT %(KEYBOARD)s /* key matrix size */ #define MATRIX_ROWS 2 diff --git a/data/templates/avr/readme.md b/data/templates/avr/readme.md index b099ed726d..207850e065 100644 --- a/data/templates/avr/readme.md +++ b/data/templates/avr/readme.md @@ -1,20 +1,20 @@ -# %KEYBOARD% +# %(KEYBOARD)s -![%KEYBOARD%](imgur.com image replace me!) +![%(KEYBOARD)s](imgur.com image replace me!) *A short description of the keyboard/project* -* Keyboard Maintainer: [%YOUR_NAME%](https://github.com/yourusername) +* Keyboard Maintainer: [%(YOUR_NAME)s](https://github.com/%(USER_NAME)s) * Hardware Supported: *The PCBs, controllers supported* * Hardware Availability: *Links to where you can find this hardware* Make example for this keyboard (after setting up your build environment): - make %KEYBOARD%:default + make %(KEYBOARD)s:default Flashing example for this keyboard: - make %KEYBOARD%:default:flash + make %(KEYBOARD)s:default:flash See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/data/templates/base/%(KEYBOARD)s.c b/data/templates/base/%(KEYBOARD)s.c new file mode 100644 index 0000000000..0c509aff65 --- /dev/null +++ b/data/templates/base/%(KEYBOARD)s.c @@ -0,0 +1,4 @@ +// Copyright %(YEAR)s %(YOUR_NAME)s (@%(USER_NAME)s) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "%(KEYBOARD)s.h" diff --git a/data/templates/base/%(KEYBOARD)s.h b/data/templates/base/%(KEYBOARD)s.h new file mode 100644 index 0000000000..3e8ca3912d --- /dev/null +++ b/data/templates/base/%(KEYBOARD)s.h @@ -0,0 +1,22 @@ +// Copyright %(YEAR)s %(YOUR_NAME)s (@%(USER_NAME)s) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + k00, k01, k02, \ + k10, k12 \ +) { \ + { k00, k01, k02 }, \ + { k10, KC_NO, k12 } \ +} diff --git a/data/templates/base/info.json b/data/templates/base/info.json index 3993d85467..a50ccba7bf 100644 --- a/data/templates/base/info.json +++ b/data/templates/base/info.json @@ -1,7 +1,7 @@ { - "keyboard_name": "%KEYBOARD%", + "keyboard_name": "%(KEYBOARD)s", "url": "", - "maintainer": "%YOUR_NAME%", + "maintainer": "%(USER_NAME)s", "layouts": { "LAYOUT": { "layout": [ diff --git a/data/templates/base/keyboard.c b/data/templates/base/keyboard.c deleted file mode 100644 index f69ae16ede..0000000000 --- a/data/templates/base/keyboard.c +++ /dev/null @@ -1,17 +0,0 @@ -/* Copyright %YEAR% %YOUR_NAME% - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "%KEYBOARD%.h" diff --git a/data/templates/base/keyboard.h b/data/templates/base/keyboard.h deleted file mode 100644 index bd2e88d12b..0000000000 --- a/data/templates/base/keyboard.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright %YEAR% %YOUR_NAME% - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include "quantum.h" - -/* This is a shortcut to help you visually see your layout. - * - * The first section contains all of the arguments representing the physical - * layout of the board and position of the keys. - * - * The second converts the arguments into a two-dimensional array which - * represents the switch matrix. - */ -#define LAYOUT( \ - k00, k01, k02, \ - k10, k12 \ -) { \ - { k00, k01, k02 }, \ - { k10, KC_NO, k12 } \ -} diff --git a/data/templates/base/keymaps/default/keymap.c b/data/templates/base/keymaps/default/keymap.c index d8020ab3e3..3fec3d5120 100644 --- a/data/templates/base/keymaps/default/keymap.c +++ b/data/templates/base/keymaps/default/keymap.c @@ -1,18 +1,6 @@ -/* Copyright %YEAR% %YOUR_NAME% - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ +// Copyright %(YEAR)s %(YOUR_NAME)s (@%(USER_NAME)s) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H // Defines names for use in layer keycodes and the keymap @@ -21,12 +9,6 @@ enum layer_names { _FN }; -// Defines the keycodes used by our macros in process_record_user -enum custom_keycodes { - QMKBEST = SAFE_RANGE, - QMKURL -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = LAYOUT( @@ -34,29 +16,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_SPC ), [_FN] = LAYOUT( - QMKBEST, QMKURL, _______, + _______, _______, _______, RESET, XXXXXXX ) }; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QMKBEST: - if (record->event.pressed) { - // when keycode QMKBEST is pressed - SEND_STRING("QMK is the best thing ever!"); - } else { - // when keycode QMKBEST is released - } - break; - case QMKURL: - if (record->event.pressed) { - // when keycode QMKURL is pressed - SEND_STRING("https://qmk.fm/\n"); - } else { - // when keycode QMKURL is released - } - break; - } - return true; -} diff --git a/data/templates/base/keymaps/default/readme.md b/data/templates/base/keymaps/default/readme.md index e052ed80f1..63a0643275 100644 --- a/data/templates/base/keymaps/default/readme.md +++ b/data/templates/base/keymaps/default/readme.md @@ -1 +1 @@ -# The default keymap for %KEYBOARD% +# The default keymap for %(KEYBOARD)s diff --git a/data/templates/ps2avrgb/config.h b/data/templates/ps2avrgb/config.h index 6150bcce6d..876a60252f 100644 --- a/data/templates/ps2avrgb/config.h +++ b/data/templates/ps2avrgb/config.h @@ -1,19 +1,5 @@ -/* -Copyright %YEAR% %YOUR_NAME% - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ +// Copyright %(YEAR)s %(YOUR_NAME)s (@%(USER_NAME)s) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once @@ -23,8 +9,8 @@ along with this program. If not, see . #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x0000 #define DEVICE_VER 0x0001 -#define MANUFACTURER %YOUR_NAME% -#define PRODUCT %KEYBOARD% +#define MANUFACTURER %(USER_NAME)s +#define PRODUCT %(KEYBOARD)s /* key matrix size */ #define MATRIX_ROWS 8 diff --git a/data/templates/ps2avrgb/readme.md b/data/templates/ps2avrgb/readme.md index 94063f9ebc..a2ac4495b6 100644 --- a/data/templates/ps2avrgb/readme.md +++ b/data/templates/ps2avrgb/readme.md @@ -1,20 +1,20 @@ -# %KEYBOARD% +# %(KEYBOARD)s -![%KEYBOARD%](imgur.com image replace me!) +![%(KEYBOARD)s](imgur.com image replace me!) *A short description of the keyboard/project* -* Keyboard Maintainer: [%YOUR_NAME%](https://github.com/yourusername) +* Keyboard Maintainer: [%(YOUR_NAME)s](https://github.com/yourusername) * Hardware Supported: *The PCBs, controllers supported* * Hardware Availability: *Links to where you can find this hardware* Make example for this keyboard (after setting up your build environment): - make %KEYBOARD%:default + make %(KEYBOARD)s:default Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) - make %KEYBOARD%:default:flash + make %(KEYBOARD)s:default:flash See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). -- cgit v1.2.3