X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=util%2Fnew_project.sh;h=d1d1ed82ca3848337164d72211c5bb917cc5a2cf;hb=d28684da90536b54ff7d145decb80e0bd9290996;hp=18d16e560c06379be5c9c9c21c5bec0f3cf9458a;hpb=e5c7b5d8fc011eaadc31c69c76642bf81aeea152;p=qmk_firmware.git diff --git a/util/new_project.sh b/util/new_project.sh index 18d16e560..d1d1ed82c 100755 --- a/util/new_project.sh +++ b/util/new_project.sh @@ -2,31 +2,65 @@ # Script to make a new quantum project # Jack Humbert 2015 -if [ -z "$1" ]; then - echo "Usage: $0 " +KEYBOARD=$1 +KEYBOARD_TYPE=$2 + +if [ -z "$KEYBOARD" ]; then + echo "Usage: $0 " + echo "Example: $0 gh60 avr" + echo "Example: $0 bfake ps2avrgb" + exit 1 +elif [ -z "$KEYBOARD_TYPE" ]; then + KEYBOARD_TYPE=avr +fi + +if [ "$KEYBOARD_TYPE" != "avr" ] && [ "$KEYBOARD_TYPE" != "ps2avrgb" ]; then + echo "Invalid keyboard type target" + exit 1 +fi + +if [ -e "keyboards/$1" ]; then + echo "Error! keyboards/$1 already exists!" exit 1 fi -cd "$(dirname "$0")/.." +cd "$(dirname "$0")/.." || exit -KEYBOARD=$1 -KEYBOARD_UPPERCASE=$(echo $1 | awk '{print toupper($0)}') - -mkdir keyboards/$1 -mkdir keyboards/$1/keymaps -mkdir keyboards/$1/keymaps/default -sed -e "s;%KEYBOARD%;$KEYBOARD;g" -e "s;%KEYBOARD_UPPERCASE%;$KEYBOARD_UPPERCASE;g" quantum/template/template.h > keyboards/$KEYBOARD/$KEYBOARD.h -sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/template.c > keyboards/$KEYBOARD/$KEYBOARD.c -sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/config.h > keyboards/$KEYBOARD/config.h -sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/readme.md > keyboards/$KEYBOARD/readme.md -sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/Makefile > keyboards/$KEYBOARD/Makefile -sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/rules.mk > keyboards/$KEYBOARD/rules.mk -sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/keymaps/default/config.h > keyboards/$KEYBOARD/keymaps/default/config.h -sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/keymaps/default/keymap.c > keyboards/$KEYBOARD/keymaps/default/keymap.c -sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/keymaps/default/Makefile > keyboards/$KEYBOARD/keymaps/default/Makefile -sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/keymaps/default/readme.md > keyboards/$KEYBOARD/keymaps/default/readme.md - -echo "######################################################" -echo "# /keyboards/$KEYBOARD project created. To start" -echo "# working on things, cd into keyboards/$KEYBOARD" -echo "######################################################" +KEYBOARD_NAME=$(basename "$1") +KEYBOARD_NAME_UPPERCASE=$(echo "$KEYBOARD_NAME" | awk '{print toupper($0)}') +NEW_KBD=keyboards/${KEYBOARD} + + +cp -r quantum/template/base "$NEW_KBD" +cp -r "quantum/template/$KEYBOARD_TYPE/." "$NEW_KBD" + +mv "${NEW_KBD}/template.c" "${NEW_KBD}/${KEYBOARD_NAME}.c" +mv "${NEW_KBD}/template.h" "${NEW_KBD}/${KEYBOARD_NAME}.h" +find "${NEW_KBD}" -type f -exec sed -i '' -e "s;%KEYBOARD%;${KEYBOARD_NAME};g" {} \; +find "${NEW_KBD}" -type f -exec sed -i '' -e "s;%KEYBOARD_UPPERCASE%;${KEYBOARD_NAME_UPPERCASE};g" {} \; + +GIT=$(whereis git) +if [ "$GIT" != "" ]; then + IS_GIT_REPO=$($GIT log >>/dev/null 2>&1; echo $?) + if [ "$IS_GIT_REPO" -eq 0 ]; then + ID="'$($GIT config --get user.name)'" + echo "Using $ID as user name" + + for i in "$NEW_KBD/config.h" \ + "$NEW_KBD/$KEYBOARD_NAME.c" \ + "$NEW_KBD/$KEYBOARD_NAME.h" \ + "$NEW_KBD/keymaps/default/config.h" \ + "$NEW_KBD/keymaps/default/keymap.c" + do + awk -v id="$ID" '{sub(/REPLACE_WITH_YOUR_NAME/,id); print}' < "$i" > "$i.$$" + mv "$i.$$" "$i" + done + fi +fi + +cat <<-EOF +###################################################### +# $NEW_KBD project created. To start +# working on things, cd into $NEW_KBD +###################################################### +EOF