From 71d1c02a9b05c676e98d9e3115e96c01c498a058 Mon Sep 17 00:00:00 2001
From: Danny Nguyen <danny@keeb.io>
Date: Wed, 16 Aug 2017 17:36:34 -0400
Subject: [PATCH] Add message to avrdude script that it can't used within WSL
 currently

---
 tmk_core/avr.mk | 28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk
index 0d0eec3bf3..95aa973aa9 100644
--- a/tmk_core/avr.mk
+++ b/tmk_core/avr.mk
@@ -145,18 +145,22 @@ dfu-ee: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep
 	$(DFU_PROGRAMMER) $(MCU) reset
 
 avrdude: $(BUILD_DIR)/$(TARGET).hex
-	ls /dev/tty* > /tmp/1; \
-	echo "Detecting Pro Micro port, reset your Pro Micro now.\c"; \
-	while [ -z $$USB ]; do \
-	  sleep 1; \
-	  echo ".\c"; \
-	  ls /dev/tty* > /tmp/2; \
-	  USB=`diff /tmp/1 /tmp/2 | grep -o '/dev/tty.*'`; \
-	done; \
-	echo ""; \
-	echo "Detected Pro Micro port at $$USB"; \
-	sleep 1; \
-	avrdude -p $(MCU) -c avr109 -P $$USB -U flash:w:$(BUILD_DIR)/$(TARGET).hex
+	if grep -q -s Microsoft /proc/version; then \
+		echo 'ERROR: Pro Micros can not be flashed within the Windows Subsystem for Linux (WSL) currently. Instead, take the .hex file generated and flash it using AVRDUDE, AVRDUDESS, or XLoader.'; \
+	else \
+		ls /dev/tty* > /tmp/1; \
+		echo "Detecting Pro Micro port, reset your Pro Micro now.\c"; \
+		while [ -z $$USB ]; do \
+			sleep 1; \
+			echo ".\c"; \
+			ls /dev/tty* > /tmp/2; \
+			USB=`diff /tmp/1 /tmp/2 | grep -o '/dev/tty.*'`; \
+		done; \
+		echo ""; \
+		echo "Detected Pro Micro port at $$USB"; \
+		sleep 1; \
+		avrdude -p $(MCU) -c avr109 -P $$USB -U flash:w:$(BUILD_DIR)/$(TARGET).hex; \
+	fi
 
 # Convert hex to bin.
 flashbin: $(BUILD_DIR)/$(TARGET).hex