#!/bin/bash # run from project root directory fatal_error() { echo "$1" "$2" exit 1 } check_slideshow() { [ -f "$1" ] || fatal_error "Can't find slideshow" "$1" cat "$1" | tr -d "\r" | grep -v "^#" | grep -v "^\[" | grep -v "^$" | while read ssline; do IFS="=" read -r filename gamename <<< "$ssline" if [ -z "$gamename" ]; then gamename=$filename fi [ -f "$2"/"$filename" ] || fatal_error "Can't find screenshot" "$filename" grep "^$gamename$" /tmp/games >/dev/null || fatal_error "Screenshot links to non-existent game" "$gamename" done } # fatal error if an attract mode module is listed more than once dupes=$(cat res/ATTRACT.CONF | tr -d "\r" | grep -v "^#" | grep -v "^$" | sort | uniq -d) if [[ $dupes ]]; then fatal_error "Duplicate ATTRACT.CONF module:" "$dupes" fi cat res/GAMES.CONF | tr -d "\r" | grep -v "^#" | grep -v "^\[" | grep -v "^$" | cut -d"," -f2 | cut -d"=" -f1 > /tmp/games # warn about unused self-running demos grep '^\!to' src/demo/*.a | cut -d'/' -f5-|cut -d'#' -f1 | grep -v "SPCARTOON" | while read f; do grep "^$f=0" res/ATTRACT.CONF >/dev/null || echo "unused demo: $f"; done # warn about unused slideshows cd res/SS for f in *.CONF; do grep "^$f=" ../ATTRACT.CONF >/dev/null || echo "unused slideshow: $f"; done cd ../.. cat res/ATTRACT.CONF | tr -d "\r" | grep "=" | grep -v "^#" | while read line; do IFS="=" read -r module_name module_type <<< "$line" # echo "$module_name" "$module_type" if [ "$module_type" = "0" ]; then [ "${module_name%???}" = "SPCARTOON" ] && continue demo=$(grep 'to.*'"$module_name" src/demo/*.a) [ -n "$demo" ] || fatal_error "Can't find demo" $module_name elif [ "$module_type" = "1" ]; then check_slideshow res/SS/"$module_name" res/TITLE.HGR/ elif [ "$module_type" = "2" ]; then check_slideshow res/SS/"$module_name" res/ACTION.HGR/ elif [ "$module_type" = "3" ]; then check_slideshow res/SS/"$module_name" res/TITLE.DHGR/ elif [ "$module_type" = "4" ]; then check_slideshow res/SS/"$module_name" res/ACTION.DHGR/ elif [ "$module_type" = "5" ]; then check_slideshow res/SS/"$module_name" res/ARTWORK.SHR/ elif [ "$module_type" = "6" ]; then check_slideshow res/SS/"$module_name" res/ACTION.GR/ elif [ "$module_type" = "7" ]; then check_slideshow res/SS/"$module_name" res/ACTION.DGR/ else fatal_error "Unknown module type" $module_type fi done #rm -f /tmp/games