#!/usr/bin/bash # # mame_merge_index_files.sh # EmulationStation MAME ROM index files merging. # # This script merges older ROM index files with newly generated ones. # As the MAME project drops and renames ROM files from time to time, we need to # include the old ROM names as well even if not supported by the newest MAME version. # The user may very well run an older MAME version and may therefore have an old ROM set. # # There is not much error checking going on here, this script is not intended to be # used by the end user. # # This script is intended to only be used on Linux systems. # # Leon Styhre # 2020-06-16 # if [ $# -ne 3 ]; then echo "Usage: ./mame_merge_index_files.sh " echo "For example:" echo "./mame_merge_index_files.sh mamebioses.xml_OLD mamebioses.xml_NEW mamebioses.xml" echo "or" echo "./mame_merge_index_files.sh mamedevices.xml_OLD mamedevices.xml_NEW mamedevices.xml" exit fi if [ ! -f $1 ]; then echo "Can't find old ROM index file" $1 exit fi if [ ! -f $2 ]; then echo "Can't find new ROM index file" $1 exit fi MAME_OLD_FILE=$1 MAME_NEW_FILE=$2 MAME_TARGET_FILE=$3 TEMPFILE=tempfile_$(date +%H%M%S) HEADER=$(grep "<\!--" $MAME_NEW_FILE) grep -v "Last updated with information from MAME driver file" $MAME_OLD_FILE > $TEMPFILE grep -v "Last updated with information from MAME driver file" $MAME_NEW_FILE >> $TEMPFILE echo $HEADER > $MAME_TARGET_FILE sort -u $TEMPFILE | sed '/^[[:space:]]*$/d' >> $MAME_TARGET_FILE rm $TEMPFILE