1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
#!/bin/bash
OUTPUT=src/gamecontrollerdb
ensure-valid-id () {
grep -E '^[0-9a-f]{32},'
}
filter_use_button_labels_hint () {
grep -v ',hint:SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1' | \
sed 's|hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,||g'
}
filter_platform () {
grep "platform:Linux" | \
sed 's|platform:Linux,||g'
}
footer () {
printf "\n" >> $OUTPUT
}
#Cleanup
rm $OUTPUT
# Add the SDL DB header
printf "# Source: https://github.com/SDL-mirror/SDL/blob/master/src/joystick/SDL_gamecontrollerdb.h\n\n" >> $OUTPUT
# Add the SDL DB
curl https://raw.githubusercontent.com/SDL-mirror/SDL/master/src/joystick/SDL_gamecontrollerdb.h \
| awk '/LINUX/{flag=1;next}/endif/{flag=0}flag' \
| sed -n 's/.*"\(.*\)".*/\1/p' \
| filter_use_button_labels_hint \
| ensure-valid-id | sort >> $OUTPUT
footer
# Add the GameControllerDB header
printf "# Source: https://github.com/gabomdq/SDL_GameControllerDB/blob/master/gamecontrollerdb.txt\n\n" >> $OUTPUT
# Add the GameControllerDB
curl https://raw.githubusercontent.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt \
| filter_platform \
| ensure-valid-id | sort >> $OUTPUT
footer
|