From 92f6d6ec0265481e35f976be88612c2284cfb185 Mon Sep 17 00:00:00 2001
From: Drashna Jael're <drashna@live.com>
Date: Mon, 27 Nov 2017 20:23:42 -0800
Subject: [PATCH] Update Userspace info to include Bootloader detection

---
 docs/feature_userspace.md | 11 +++++++++++
 users/drashna/template.c  |  6 +++++-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/docs/feature_userspace.md b/docs/feature_userspace.md
index eaf7aa395..98b42b042 100644
--- a/docs/feature_userspace.md
+++ b/docs/feature_userspace.md
@@ -74,6 +74,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
   case KC_MAKE:
     if (!record->event.pressed) {
       SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP);
+#if  (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU))
+      SEND_STRING(":dfu");
+#elseif defined(BOOTLOADER_HALFKEY)
+      SEND_STRING(":teensy ");
+#elseif defined(BOOTLOADER_CATERINA)
+      SEND_STRING(":avrdude ");
+#else
+      SEND_STRING(" ");
+#endif
       SEND_STRING(SS_TAP(X_ENTER));
     }
     return false;
@@ -85,3 +94,5 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 
 This will add a new `KC_MAKE`  keycode that can be used in any of your keymaps.  And this keycode will output `make <keyboard>:<keymap">`, making frequent compiling easier.  And this will work with any keyboard and any keymap as it will output the current boards info, so that you don't have to type this out every time. 
 
+Additionally, this should flash the newly compiled firmware automatically, using the correct utility, based on the bootloader settings (or default to just generating the HEX file). However, it should be noted that this may not work on all systems (AVRDUDE doesn't work on WSL, namely).
+
diff --git a/users/drashna/template.c b/users/drashna/template.c
index f377d64f7..28f61c04f 100644
--- a/users/drashna/template.c
+++ b/users/drashna/template.c
@@ -43,8 +43,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
   case KC_MAKE:
     if (!record->event.pressed) {
       SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP);
-#ifndef BOOTLOADER_CATERINA
+#if  (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU))
+      SEND_STRING(":dfu");
+#elseif defined(BOOTLOADER_HALFKEY)
       SEND_STRING(":teensy ");
+#elseif defined(BOOTLOADER_CATERINA)
+      SEND_STRING(":avrdude ");
 #else
       SEND_STRING(" ");
 #endif
-- 
2.39.5