From 70a7b84dabf3e8dc292f0aaf966a10ba9a8707f8 Mon Sep 17 00:00:00 2001
From: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>
Date: Tue, 28 May 2019 20:38:47 +0200
Subject: [PATCH] Clean up duped filenames om qmk.fm (#5822)

Removes all binaries that don't correspond to an entry in the .keyboards file
---
 util/travis_compiled_push.sh | 25 +++++++++++++++++++++++--
 1 file changed, 23 insertions(+), 2 deletions(-)

diff --git a/util/travis_compiled_push.sh b/util/travis_compiled_push.sh
index d76030f831..25ed83fb03 100755
--- a/util/travis_compiled_push.sh
+++ b/util/travis_compiled_push.sh
@@ -55,8 +55,29 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then
 	# rm -f compiled/*.hex
 
 	# ignore errors here
-  # In theory, this is more flexible, and will allow for additional expansion of additional types of files and other names
-  mv ../qmk_firmware/*_default.*[hb][ei][xn] ./compiled/ || true
+	# In theory, this is more flexible, and will allow for additional expansion of additional types of files and other names
+	mv ../qmk_firmware/*_default.*{hex,bin} ./compiled/ || true
+
+	# get the list of keyboards
+	readarray -t keyboards < .keyboards
+
+	# replace / with _
+	keyboards=("${keyboards[@]//[\/]/_}")
+
+	# remove all binaries that don't belong to a keyboard in .keyboards
+	for file in "./compiled"/* ; do
+		match=0
+		for keyboard in "${keyboards[@]}" ; do
+			if [[ ${file##*/} = "${keyboard}_default.bin" ]] || [[ ${file##*/} = "${keyboard}_default.hex" ]]; then
+				match=1
+				break
+			fi
+		done
+		if [[ $match = 0 ]]; then
+			echo "Removing deprecated binary: $file"
+			rm "$file"
+		fi
+	done
 
 	bash _util/generate_keyboard_page.sh
 	git add -A