X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=util%2Fnew_project.sh;h=9dec714b02a2160849cd2531f6396a5bf260e156;hb=0456bd668de37f118e717aabf00a132756ea619c;hp=18d16e560c06379be5c9c9c21c5bec0f3cf9458a;hpb=af119baf710c0b19cfe3351e3f3e89ddeeaacdf6;p=qmk_firmware.git diff --git a/util/new_project.sh b/util/new_project.sh index 18d16e560..9dec714b0 100755 --- a/util/new_project.sh +++ b/util/new_project.sh @@ -2,31 +2,69 @@ # 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)" + read -rp "What is your name? [$ID] " YOUR_NAME + if [ -n "$YOUR_NAME" ]; then + ID=$YOUR_NAME + fi + 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(/%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