#!/bin/bash # adjust for cpu # -j 16 gave best result on a hyperthreaded quad core core i7 LIMIT=10 THREADS="-j 16" KMAP=iso_split_rshift echo "We need sudo later" sudo ls 2>&1 /dev/null function wait_bootloader { echo "Waiting for Bootloader..." local STARTTIME=$(date +"%s") local REMIND=0 local EXEC=dfu-programmer local TARGET=atmega32u4 while true do sudo $EXEC $TARGET get > /dev/null 2>&1 [ $? -eq 0 ] && break ENDTIME=$(date +"%s") DURATION=$(($ENDTIME-$STARTTIME)) if [ $REMIND -eq 0 -a $DURATION -gt $LIMIT ] then echo "Did you forget to press the reset button?" REMIND=1 fi sleep 1 done } make clean make KEYMAP=${KMAP} ${THREADS} if [[ $? -eq 0 ]] then echo "please trigger flashing!" wait_bootloader sudo make KEYMAP=${KMAP} dfu ${THREADS} else echo "make failed" exit 77 fi