#!/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 saturn sega32x sg1000 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