serverlist-validate-game-icons.sh 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/bin/bash
  2. cd "${datadir}" || exit
  3. exitcode=0
  4. echo ""
  5. echo "Checking that all the game servers listed in serverlist.csv have a shortname-icon.png file"
  6. for shortname in $(tail -n +2 serverlist.csv | cut -d ',' -f1); do
  7. # check if $shortname-icon.png exists
  8. if [ ! -f "gameicons/${shortname}-icon.png" ]; then
  9. echo "ERROR: gameicons/${shortname}-icon.png does not exist"
  10. exitcode=1
  11. else
  12. echo "OK: gameicons/${shortname}-icon.png exists"
  13. fi
  14. done
  15. echo ""
  16. echo "Checking if an unexpected gameicon exists"
  17. shopt -s nullglob
  18. for gameiconpath in gameicons/*; do
  19. gameicon="$(basename "${gameiconpath}")"
  20. # check if $gameicon is in serverlist.csv
  21. if ! grep -q -F "${gameicon%-icon.png}" serverlist.csv; then
  22. echo "ERROR: gameicon ${gameicon} is not in serverlist.csv"
  23. exitcode=1
  24. else
  25. echo "OK: gameicon ${gameicon} is in serverlist.csv"
  26. fi
  27. done
  28. echo ""
  29. echo "Checking that the number of gameicons matches the number of servers in serverlist.csv"
  30. gameiconcount="$(find gameicons -mindepth 1 -maxdepth 1 -type f | wc -l)"
  31. serverlistcount="$(tail -n +2 serverlist.csv | wc -l)"
  32. if [ "${gameiconcount}" -ne "${serverlistcount}" ]; then
  33. echo "ERROR: game icons (${gameiconcount}) does not match serverlist.csv ($serverlistcount)"
  34. exitcode=1
  35. else
  36. echo "OK: gameiconcount ($gameiconcount) matches serverlistcount ($serverlistcount)"
  37. fi
  38. exit "${exitcode}"