Files
hascheevos2/find_roms.sh
T
2020-12-18 16:17:22 +00:00

59 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
sourcedir=$1
hashfile=$2
readonly SCRIPT_DIR="$(cd "$(dirname $0)" && pwd)"
systemfolder="$(basename "$2" .hashlist)"
tmpdir="$SCRIPT_DIR"/.tmpdir/
outputfile="$SCRIPT_DIR"/find_roms.log
outputdir=~/roms.retroachievements.2020/
# Ansi color code variables
red="\e[0;91m"
blue="\e[0;94m"
expand_bg="\e[K"
blue_bg="\e[0;104m${expand_bg}"
red_bg="\e[0;101m${expand_bg}"
green_bg="\e[0;102m${expand_bg}"
green="\e[0;92m"
white="\e[0;97m"
bold="\e[1m"
uline="\e[4m"
reset="\e[0m"
if test -d "$tmpdir"; then
rm -rdf "$tmpdir"
echo "Deleting $tmpdir folder."
fi
if ! test -d "$tmpdir"; then
mkdir -p "$tmpdir"
echo "Create $tmpdir folder."
fi
if test -f "$outputfile"; then
rm "$outputfile"
fi
if ! test -d ${outputdir}"${systemfolder}"; then
mkdir -p ${outputdir}"${systemfolder}"
echo "Create ${outputdir}${systemfolder} folder."
fi
sleep 1
for zipfile in "${sourcedir}"/*.zip; do
gameName="$(basename "$zipfile" .zip)"
echo -e "${red}Extracting ${gameName}...${reset}"
7z x "${zipfile}" -o${tmpdir}"${gameName}-tmp" > /dev/null
for i in ${tmpdir}"${gameName}-tmp"/*; do
hash=$(md5sum "$i" | grep -E "[0-9a-f]{32}" -Eo)
if grep -q $hash "${hashfile}"; then
echo "${gameName}" >> "${outputfile}"
cp "${zipfile}" ${outputdir}"${systemfolder}"/ -v
fi
done
rm -rdf ${tmpdir}/"${gameName}-tmp"
done
rm -rdf ${tmpdir}
chmod 755 ${outputdir}"${systemfolder}"/*
echo "$(find "${outputdir}"${systemfolder} -maxdepth 1 -type f | wc -l) files copied out of $(wc -l < $2) hashes"