Files
scripts/skyscraper_system.sh
T
2021-01-17 14:57:29 +00:00

138 lines
4.8 KiB
Bash
Executable File

#!/bin/bash
readonly USAGE="
USAGE:
$(basename "$0") [BUILD or SCRAP] [PATH] [SYSTEM]"
function help_message() {
echo "$USAGE"
echo
echo "Where [SYSTEM] are:"
for WORD in $SYSTEMS; do
echo -e "\t$WORD"
done
}
SYSTEMS="apple2 arcade atari2600 atari7800 atarilynx dreamcast coleco gamegear gb gba gbc mastersystem megadrive msx n64 nds nes ngpc pcengine psp psx saturn sega32x sg-1000 snes vectrex virtualboy wonderswan wonderswancolor"
# check if there are all the parameters
if [ "$#" -ne 3 ]; then
help_message
exit 0
fi
# check if the systems parameter is valid
if ! echo "$SYSTEMS" | grep -w "$3" >/dev/null; then
printf "%s\n" "You must enter a valid SYSTEM name."
help_message
exit 0
fi
# variables
#readonly COLOR_BLACK=$(tput setaf 0)
#readonly COLOR_RED=$(tput setaf 1)
#readonly COLOR_GREEN=$(tput setaf 2)
#readonly COLOR_YELLOW=$(tput setaf 3)
#readonly COLOR_BLUE=$(tput setaf 4)
#readonly COLOR_MAGENTA=$(tput setaf 5)
#readonly COLOR_CYAN=$(tput setaf 6)
readonly COLOR_WHITE=$(tput setaf 7)
#readonly COLOR_BACKGROUND_BLACK=$(tput setab 0)
readonly COLOR_BACKGROUND_RED=$(tput setab 1)
#readonly COLOR_BACKGROUND_GREEN=$(tput setab 2)
#readonly COLOR_BACKGROUND_YELLOW=$(tput setab 3)
#readonly COLOR_BACKGROUND_BLUE=$(tput setab 4)
#readonly COLOR_BACKGROUND_MAGENTA=$(tput setab 5)
#readonly COLOR_BACKGROUND_CYAN=$(tput setab 6)
#readonly COLOR_BACKGROUND_WHITE=$(tput setab 7)
readonly RESET_COLOR=$(tput sgr0)
#readonly SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
readonly ROM_DIR="$2"
readonly SYSTEM_NAME="$3"
readonly FRONTEND="pegasus"
readonly CONSOLE_ART=artwork.xml.example2
readonly CONSOLECD_ART=artwork.xml.example2
readonly ARCADE_ART=artwork.xml.example2
readonly CONSOLE_SCRAPERS="screenscraper mobygames thegamesdb"
readonly ARCADE_SCRAPERS="screenacraper arcadedb"
readonly CONSOLE="atari2600 atarilynx dreamcast fds gamegear gb gba gbc mastersystem megadrive msx nds nes ngp ngpc pcengine psp saturn sega32x snes wonderswan wonderswancolor"
readonly CONSOLECD="psx segacd"
readonly ARCADE="fba neogeo mame-advmame mame-mame4all"
SCRAP=true
BUILD=true
if [ "$1" = SCRAP ]; then
BUILD=false
printf "%s\n" "${COLOR_WHITE}${COLOR_BACKGROUND_RED}## SCRAP ONLY ${RESET_COLOR}"
sleep 1
fi
if [ "$1" = BUILD ]; then
SCRAP=false
printf "%s\n" "${COLOR_WHITE}${COLOR_BACKGROUND_RED}## BUILD ONLY ${RESET_COLOR}"
sleep 1
fi
# console
if echo "${CONSOLE}" | grep -w "${SYSTEM_NAME}" >/dev/null; then
if [ "${SCRAP}" = true ]; then
for SCRAPER in ${CONSOLE_SCRAPERS}; do
Skyscraper --flags videos,unattend,noresize,unpack -p "${SYSTEM_NAME}" -s "${SCRAPER}" -i "${ROM_DIR}"/"${SYSTEM_NAME}"
done
fi
if [ "${BUILD}" = true ]; then
Skyscraper --flags videos,unattend,forcefilename,relative,skipexistingvideos -a $CONSOLE_ART -p "${SYSTEM_NAME}" -f "${FRONTEND}" -i "${ROM_DIR}"/"${SYSTEM_NAME}"
#Skyscraper --flags videos,unattend,relative,skipexistingvideos -a $CONSOLE_ART -p $i
fi
exit 0
fi
# consolecd
if echo "${CONSOLECD}" | grep -w "${SYSTEM_NAME}" >/dev/null; then
if [ "${SCRAP}" = true ]; then
for SCRAPER in ${CONSOLE_SCRAPERS}; do
Skyscraper --flags videos,unattend,noresize -p "${SYSTEM_NAME}" -s "${SCRAPER}" -i "${ROM_DIR}"/"${SYSTEM_NAME}"
done
fi
if [ "${BUILD}" = true ]; then
Skyscraper --flags videos,unattend,forcefilename,relative,skipexistingvideos,nobrackets -a $CONSOLECD_ART -p "$SYSTEM_NAME" -f "${FRONTEND}" -i "${ROM_DIR}"/"${SYSTEM_NAME}"
fi
exit 0
fi
# arcade
if echo "${ARCADE}" | grep -w "${SYSTEM_NAME}" >/dev/null; then
if [ "${SCRAP}" = true ]; then
for SCRAPER in ${ARCADE_SCRAPERS}; do
Skyscraper --flags videos,unattend,noresize -p "${SYSTEM_NAME}" -s "${SCRAPER}" -i "${ROM_DIR}"/"${SYSTEM_NAME}"
done
fi
if [ "${BUILD}" = true ]; then
Skyscraper --flags videos,unattend,relative,skipexistingvideos,nobrackets -a $ARCADE_ART -p "${SYSTEM_NAME}" -f "${FRONTEND}" -i "${ROM_DIR}"/"${SYSTEM_NAME}"
fi
exit 0
fi
# pcenginecd
if [ "$SYSTEM_NAME" = "pcenginecd" ]; then
mv -v "${ROM_DIR}"/pcengine "${ROM_DIR}"/pcengine.cart
mv -v "${ROM_DIR}"/pcenginecd "${ROM_DIR}"/pcengine
if [ "${SCRAP}" = true ]; then
for SCRAPER in $CONSOLE_SCRAPERS; do
Skyscraper --flags videos,unattend,noresize -p "${SYSTEM_NAME}" -s "${SCRAPER}" -i "${ROM_DIR}"/"${SYSTEM_NAME}"
done
fi
if [ "${BUILD}" = true ]; then
Skyscraper --flags videos,unattend,forcefilename,relative,skipexistingvideos,nobrackets -a $CONSOLECD_ART -p "${SYSTEM_NAME}" -f "${FRONTEND}" -i "${ROM_DIR}"/"${SYSTEM_NAME}"
fi
mv -v "${ROM_DIR}"/pcengine "${ROM_DIR}"/pcenginecd
mv -v "${ROM_DIR}"/pcengine.cart "${ROM_DIR}"/pcengine
exit 0
fi