2 # Script to make a new quantum project
8 if [ -z "$KEYBOARD" ]; then
9 echo "Usage: $0 <keyboard_name> <keyboard_type>"
10 echo "Example: $0 gh60 avr"
11 echo "Example: $0 bfake ps2avrgb"
13 elif [ -z "$KEYBOARD_TYPE" ]; then
17 if [ "$KEYBOARD_TYPE" != "avr" ] && [ "$KEYBOARD_TYPE" != "ps2avrgb" ]; then
18 echo "Invalid keyboard type target"
22 if [ -e "keyboards/$1" ]; then
23 echo "Error! keyboards/$1 already exists!"
27 cd "$(dirname "$0")/.." || exit
29 KEYBOARD_NAME=$(basename "$1")
30 KEYBOARD_NAME_UPPERCASE=$(echo "$KEYBOARD_NAME" | awk '{print toupper($0)}')
31 NEW_KBD=keyboards/${KEYBOARD}
34 cp -r quantum/template/base "$NEW_KBD"
35 cp -r "quantum/template/$KEYBOARD_TYPE/." "$NEW_KBD"
37 mv "${NEW_KBD}/template.c" "${NEW_KBD}/${KEYBOARD_NAME}.c"
38 mv "${NEW_KBD}/template.h" "${NEW_KBD}/${KEYBOARD_NAME}.h"
39 find "${NEW_KBD}" -type f -exec sed -i '' -e "s;%KEYBOARD%;${KEYBOARD_NAME};g" {} \;
40 find "${NEW_KBD}" -type f -exec sed -i '' -e "s;%KEYBOARD_UPPERCASE%;${KEYBOARD_NAME_UPPERCASE};g" {} \;
43 if [ "$GIT" != "" ]; then
44 IS_GIT_REPO=$($GIT log >>/dev/null 2>&1; echo $?)
45 if [ "$IS_GIT_REPO" -eq 0 ]; then
46 ID="'$($GIT config --get user.name)'"
47 echo "Using $ID as user name"
49 for i in "$NEW_KBD/config.h" \
50 "$NEW_KBD/$KEYBOARD_NAME.c" \
51 "$NEW_KBD/$KEYBOARD_NAME.h" \
52 "$NEW_KBD/keymaps/default/config.h" \
53 "$NEW_KBD/keymaps/default/keymap.c"
55 awk -v id="$ID" '{sub(/REPLACE_WITH_YOUR_NAME/,id); print}' < "$i" > "$i.$$"
62 ######################################################
63 # $NEW_KBD project created. To start
64 # working on things, cd into $NEW_KBD
65 ######################################################