- for file in ../qmk_firmware/keyboards/*/keymaps/*/*.hex; do mv -v "$file" "compiled/${file##*/}" || true; done
- for file in ../qmk_firmware/keyboards/*/*/keymaps/*/*.hex; do mv -v "$file" "compiled/${file##*/}" || true; done
-
+ # 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