290 lines
9.2 KiB
Bash
290 lines
9.2 KiB
Bash
#!/usr/bin/with-contenv bash
|
|
scriptVersion="1.0"
|
|
scriptName="EmulatorJS"
|
|
|
|
#### Import Settings
|
|
source /config/extended.conf
|
|
downloadPath="$romPath/RA_collection"
|
|
emulatorjsPath="$romPath/emulatorjs"
|
|
|
|
#### Funcitons
|
|
logfileSetup () {
|
|
# auto-clean up log file to reduce space usage
|
|
if [ -f "/config/$scriptName.log" ]; then
|
|
if find /config -type f -name "$scriptName.log" -size +1024k | read; then
|
|
echo "" > /config/$scriptName.log
|
|
fi
|
|
fi
|
|
|
|
if [ ! -f "/config/$scriptName.log" ]; then
|
|
echo "" > /config/$scriptName.log
|
|
chmod 666 "/config/$scriptName.log"
|
|
fi
|
|
}
|
|
|
|
log () {
|
|
m_time=`date "+%F %T"`
|
|
echo $m_time" :: $scriptName :: $scriptVersion :: "$1 2>&1 | tee -a /config/$scriptName.log
|
|
}
|
|
|
|
ProcessRoms () {
|
|
OIFS="$IFS"
|
|
IFS=$'\n'
|
|
for folder in $(ls "$1"); do
|
|
romFolder="$1/$folder"
|
|
romFiles="$(ls "$romFolder" | sort -hr)"
|
|
if echo "$romFiles" | grep -i " (U)" | head -n 1 | read; then
|
|
log "USA ROM FOUND"
|
|
romFile="$(echo "$romFiles" | grep -i " (U)" | head -n 1)"
|
|
CreateHardLink "$romFolder/$romFile"
|
|
elif echo "$romFiles" | grep -i " (USA)" | head -n 1 | read; then
|
|
log "USA ROM FOUND"
|
|
romFile="$(echo "$romFiles" | grep -i " (USA)" | head -n 1)"
|
|
CreateHardLink "$romFolder/$romFile"
|
|
elif echo "$romFiles" | grep -i " (UE)" | head -n 1 | read; then
|
|
log "USA ROM FOUND"
|
|
romFile="$(echo "$romFiles" | grep -i " (UE)" | head -n 1)"
|
|
CreateHardLink "$romFolder/$romFile"
|
|
elif echo "$romFiles" | grep -i " (E)" | head -n 1 | read; then
|
|
log "EUROPE ROM FOUND"
|
|
romFile="$(echo "$romFiles" | grep -i " (E)" | head -n 1)"
|
|
CreateHardLink "$romFolder/$romFile"
|
|
elif echo "$romFiles" | grep -i " (Europe)" | head -n 1 | read; then
|
|
log "EUROPE ROM FOUND"
|
|
romFile="$(echo "$romFiles" | grep -i " (Europe)" | head -n 1)"
|
|
CreateHardLink "$romFolder/$romFile"
|
|
elif echo "$romFiles" | grep -i " (W)" | head -n 1 | read; then
|
|
log "WORLD ROM FOUND"
|
|
romFile="$(echo "$romFiles" | grep -i " (W)" | head -n 1)"
|
|
CreateHardLink "$romFolder/$romFile"
|
|
elif echo "$romFiles" | grep -i " (World)" | head -n 1 | read; then
|
|
log "WORLD ROM FOUND"
|
|
romFile="$(echo "$romFiles" | grep -i " (World)" | head -n 1)"
|
|
CreateHardLink "$romFolder/$romFile"
|
|
elif echo "$romFiles" | grep -i " (J)" | head -n 1 | read; then
|
|
log "JAPAN ROM FOUND"
|
|
romFile="$(echo "$romFiles" | grep -i " (J)" | head -n 1)"
|
|
CreateHardLink "$romFolder/$romFile"
|
|
elif echo "$romFiles" | grep -i " (Japan)" | head -n 1 | read; then
|
|
log "JAPAN ROM FOUND"
|
|
romFile="$(echo "$romFiles" | grep -i " (Japan)" | head -n 1)"
|
|
CreateHardLink "$romFolder/$romFile"
|
|
elif echo "$romFiles" | grep -i ".zip" | head -n 1 | read; then
|
|
log "OTHER ROM FOUND"
|
|
romFile="$(echo "$romFiles" | grep -i ".zip" | head -n 1)"
|
|
CreateHardLink "$romFolder/$romFile"
|
|
fi
|
|
done
|
|
IFS="$OIFS"
|
|
}
|
|
|
|
CreateHardLink () {
|
|
log "$emulatorJsPlatformFolder"
|
|
romFileName="$(basename "$1")"
|
|
log "$romFileName"
|
|
if [ ! -d "$emulatorjsPath/$emulatorJsPlatformFolder" ]; then
|
|
mkdir -p "$emulatorjsPath/$emulatorJsPlatformFolder"
|
|
chmod 777 "$emulatorjsPath/$emulatorJsPlatformFolder"
|
|
fi
|
|
if [ ! -f "$emulatorjsPath/$emulatorJsPlatformFolder/roms/$romFileName" ]; then
|
|
log "Create link"
|
|
ln "$1" "$emulatorjsPath/$emulatorJsPlatformFolder/roms/$romFileName"
|
|
chmod 666
|
|
else
|
|
log "Link Exists, skipping..."
|
|
fi
|
|
}
|
|
|
|
|
|
########################################################## SCRIPT START "##########################################################
|
|
logfileSetup
|
|
|
|
if [ ! -d "$emulatorjsPath" ]; then
|
|
log "ERROR :: Emulatorjs path does not exist..."
|
|
exit
|
|
fi
|
|
|
|
log "##########################################################"
|
|
log "Processing NES ROMS"
|
|
raFolder="$romPath/RA_collection/NES"
|
|
emulatorJsPlatformFolder="nes"
|
|
if [ -d "$raFolder" ]; then
|
|
ProcessRoms "$raFolder" "$emulatorJsPlatformFolder"
|
|
fi
|
|
log "##########################################################"
|
|
sleep 2
|
|
|
|
|
|
log "Processing Game Boy ROMS"
|
|
raFolder="$romPath/RA_collection/Game Boy"
|
|
emulatorJsPlatformFolder="gb"
|
|
if [ -d "$raFolder" ]; then
|
|
ProcessRoms "$raFolder" "$emulatorJsPlatformFolder"
|
|
fi
|
|
log "##########################################################"
|
|
sleep 2
|
|
|
|
log "Processing Game Boy Color ROMS"
|
|
raFolder="$romPath/RA_collection/Game Boy Color"
|
|
emulatorJsPlatformFolder="gbc"
|
|
if [ -d "$raFolder" ]; then
|
|
ProcessRoms "$raFolder" "$emulatorJsPlatformFolder"
|
|
fi
|
|
log "##########################################################"
|
|
|
|
log "Processing Game Boy Advance ROMS"
|
|
raFolder="$romPath/RA_collection/Game Boy Advance"
|
|
emulatorJsPlatformFolder="gba"
|
|
if [ -d "$raFolder" ]; then
|
|
ProcessRoms "$raFolder" "$emulatorJsPlatformFolder"
|
|
fi
|
|
log "##########################################################"
|
|
sleep 2
|
|
|
|
log "Processing Game Gear ROMS"
|
|
raFolder="$romPath/RA_collection/Game Gear"
|
|
emulatorJsPlatformFolder="segaGG"
|
|
if [ -d "$raFolder" ]; then
|
|
ProcessRoms "$raFolder" "$emulatorJsPlatformFolder"
|
|
fi
|
|
log "##########################################################"
|
|
sleep 2
|
|
|
|
log "Processing SNES ROMS"
|
|
raFolder="$romPath/RA_collection/SNES"
|
|
emulatorJsPlatformFolder="snes"
|
|
if [ -d "$raFolder" ]; then
|
|
ProcessRoms "$raFolder" "$emulatorJsPlatformFolder"
|
|
fi
|
|
log "##########################################################"
|
|
sleep 2
|
|
|
|
log "Processing Virtual Boy ROMS"
|
|
raFolder="$romPath/RA_collection/Virtual Boy"
|
|
emulatorJsPlatformFolder="vb"
|
|
if [ -d "$raFolder" ]; then
|
|
ProcessRoms "$raFolder" "$emulatorJsPlatformFolder"
|
|
fi
|
|
log "##########################################################"
|
|
sleep 2
|
|
|
|
log "Processing Vectrex ROMS"
|
|
raFolder="$romPath/RA_collection/Vectrex"
|
|
emulatorJsPlatformFolder="vectrex"
|
|
if [ -d "$raFolder" ]; then
|
|
ProcessRoms "$raFolder" "$emulatorJsPlatformFolder"
|
|
fi
|
|
log "##########################################################"
|
|
sleep 2
|
|
|
|
log "Processing Mega Drive ROMS"
|
|
raFolder="$romPath/RA_collection/Mega Drive"
|
|
emulatorJsPlatformFolder="segaMD"
|
|
if [ -d "$raFolder" ]; then
|
|
ProcessRoms "$raFolder" "$emulatorJsPlatformFolder"
|
|
fi
|
|
log "##########################################################"
|
|
sleep 2
|
|
|
|
log "Processing Master System ROMS"
|
|
raFolder="$romPath/RA_collection/Master System"
|
|
emulatorJsPlatformFolder="segaMS"
|
|
if [ -d "$raFolder" ]; then
|
|
ProcessRoms "$raFolder" "$emulatorJsPlatformFolder"
|
|
fi
|
|
log "##########################################################"
|
|
sleep 2
|
|
|
|
log "Processing Nintendo 64 ROMS"
|
|
raFolder="$romPath/RA_collection/Nintendo 64"
|
|
emulatorJsPlatformFolder="n64"
|
|
if [ -d "$raFolder" ]; then
|
|
ProcessRoms "$raFolder" "$emulatorJsPlatformFolder"
|
|
fi
|
|
log "##########################################################"
|
|
sleep 2
|
|
|
|
log "Processing Atari 2600 ROMS"
|
|
raFolder="$romPath/RA_collection/Atari 2600"
|
|
emulatorJsPlatformFolder="atari2600"
|
|
if [ -d "$raFolder" ]; then
|
|
ProcessRoms "$raFolder" "$emulatorJsPlatformFolder"
|
|
fi
|
|
log "##########################################################"
|
|
sleep 2
|
|
|
|
log "Processing Atari 7800 ROMS"
|
|
raFolder="$romPath/RA_collection/Atari 7800"
|
|
emulatorJsPlatformFolder="atari7800"
|
|
if [ -d "$raFolder" ]; then
|
|
ProcessRoms "$raFolder" "$emulatorJsPlatformFolder"
|
|
fi
|
|
log "##########################################################"
|
|
sleep 2
|
|
|
|
log "Processing Atari Lynx ROMS"
|
|
raFolder="$romPath/RA_collection/Atari Lynx"
|
|
emulatorJsPlatformFolder="lynx"
|
|
if [ -d "$raFolder" ]; then
|
|
ProcessRoms "$raFolder" "$emulatorJsPlatformFolder"
|
|
fi
|
|
log "##########################################################"
|
|
sleep 2
|
|
|
|
log "Processing ColecoVision ROMS"
|
|
raFolder="$romPath/RA_collection/ColecoVision"
|
|
emulatorJsPlatformFolder="colecovision"
|
|
if [ -d "$raFolder" ]; then
|
|
ProcessRoms "$raFolder" "$emulatorJsPlatformFolder"
|
|
fi
|
|
log "##########################################################"
|
|
sleep 2
|
|
|
|
log "Processing Magnavox Odyssey 2 ROMS"
|
|
raFolder="$romPath/RA_collection/Magnavox Odyssey 2"
|
|
emulatorJsPlatformFolder="odyssey2"
|
|
if [ -d "$raFolder" ]; then
|
|
ProcessRoms "$raFolder" "$emulatorJsPlatformFolder"
|
|
fi
|
|
log "##########################################################"
|
|
sleep 2
|
|
|
|
log "Processing Atari Jaguar ROMS"
|
|
raFolder="$romPath/RA_collection/Atari Jaguar"
|
|
emulatorJsPlatformFolder="jaguar"
|
|
if [ -d "$raFolder" ]; then
|
|
ProcessRoms "$raFolder" "$emulatorJsPlatformFolder"
|
|
fi
|
|
log "##########################################################"
|
|
sleep 2
|
|
|
|
log "Processing Neo Geo Pocket ROMS"
|
|
raFolder="$romPath/RA_collection/Neo Geo Pocket"
|
|
emulatorJsPlatformFolder="ngp"
|
|
if [ -d "$raFolder" ]; then
|
|
ProcessRoms "$raFolder" "$emulatorJsPlatformFolder"
|
|
fi
|
|
log "##########################################################"
|
|
sleep 2
|
|
|
|
log "Processing WonderSwan ROMS"
|
|
raFolder="$romPath/RA_collection/WonderSwan"
|
|
emulatorJsPlatformFolder="ws"
|
|
if [ -d "$raFolder" ]; then
|
|
ProcessRoms "$raFolder" "$emulatorJsPlatformFolder"
|
|
fi
|
|
log "##########################################################"
|
|
sleep 2
|
|
|
|
log "Processing Sega 32X ROMS"
|
|
raFolder="$romPath/RA_collection/32X"
|
|
emulatorJsPlatformFolder="sega32x"
|
|
if [ -d "$raFolder" ]; then
|
|
ProcessRoms "$raFolder" "$emulatorJsPlatformFolder"
|
|
fi
|
|
log "##########################################################"
|
|
sleep 2
|
|
|
|
|
|
|
|
exit
|