2
0

keyboard_identifier_generator.sh 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #/bin/bash
  2. echo "# Keyboard Identifiers
  3. |Keyboard|Vendor ID|Product ID|Device Ver|
  4. | ------ |--------:| --------:| --------:|" > docs/keyboard_identifiers.md
  5. for project in $(find . -regex '\./keyboards/[a-z0-9_\-]+/config.h')
  6. do
  7. keyboard_name=$(printf $project | sed -r "s/\.\/keyboards\/([a-zA-Z0-9_\-]+).*/\1/g")
  8. vendor_id=$(grep 'VENDOR_ID' $project | \
  9. tr -d '\n' | \
  10. sed -r "s/.*(0x[a-fA-F0-9]+).*/\1/g")
  11. if [ -z $vendor_id ]; then
  12. for subproject in $(find . -regex "\./keyboards/$keyboard_name/[a-z0-9_\-]+/config.h")
  13. do
  14. subproject_name=$(printf $subproject | sed -r "s/\.\/keyboards\/${keyboard_name}\/([a-zA-Z0-9_\-]+).*/\1/g")
  15. subproject_vendor_id=$(grep 'VENDOR_ID' $subproject | \
  16. tr -d '\n' | \
  17. sed -r "s/.*(0x[a-fA-F0-9]+).*/\1/g")
  18. vendor_id+=$(printf "%s: %s<br />" $subproject_name $subproject_vendor_id)
  19. done
  20. fi
  21. product_id=$(grep 'PRODUCT_ID' $project | \
  22. tr -d '\n' | \
  23. sed -r "s/.*(0x[a-fA-F0-9]+).*/\1/g")
  24. if [ -z $product_id ]; then
  25. for subproject in $(find . -regex "\./keyboards/$keyboard_name/[a-z0-9_\-]+/config.h")
  26. do
  27. subproject_name=$(printf $subproject | sed -r "s/\.\/keyboards\/${keyboard_name}\/([a-zA-Z0-9_\-]+).*/\1/g")
  28. subproject_product_id=$(grep 'PRODUCT_ID' $subproject | \
  29. tr -d '\n' | \
  30. sed -r "s/.*(0x[a-fA-F0-9]+).*/\1/g")
  31. product_id+=$(printf "%s: %s<br />" $subproject_name $subproject_product_id)
  32. done
  33. fi
  34. device_ver=$(grep 'DEVICE_VER' $project | \
  35. tr -d '\n' | \
  36. sed -r "s/.*(0x[a-fA-F0-9]+).*/\1/g")
  37. if [ -z $device_ver ]; then
  38. for subproject in $(find . -regex "\./keyboards/$keyboard_name/[a-z0-9_\-]+/config.h")
  39. do
  40. subproject_name=$(printf $subproject | sed -r "s/\.\/keyboards\/${keyboard_name}\/([a-zA-Z0-9_\-]+).*/\1/g")
  41. subproject_device_ver=$(grep 'DEVICE_VER' $subproject | \
  42. tr -d '\n' | \
  43. sed -r "s/.*(0x[a-fA-F0-9]+).*/\1/g")
  44. device_ver+=$(printf "%s: %s<br />" $subproject_name $subproject_device_ver)
  45. done
  46. fi
  47. printf "|%s|%s|%s|%s|\n" "$keyboard_name" "$vendor_id" "$product_id" "$device_ver" >> docs/keyboard_identifiers.md
  48. done