#!/bin/bash readonly USAGE=" USAGE: $(basename "$0") [BUILD or SCRAP] [FRONTEND] [PATH]" function help_message() { echo "$USAGE" echo echo "Where [FRONTEND] are:" for WORD in $FRONTENDS; do echo -e "\t$WORD" done } FRONTENDS="emulationstation pegasus" # check if there are all the parameters if [ "$#" -ne 3 ]; then help_message exit 0 fi # check if the frontend parameter is valid if ! echo "$FRONTENDS" | grep -w "$2" >/dev/null; then printf "%s\n" "You must enter a valid FRONTEND 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 FRONTEND="$2" readonly ROM_DIR="$3" readonly CONSOLE_ART=artwork.xml.screenshot readonly CONSOLECD_ART=artwork.xml.cover readonly ARCADE_ART=artwork.xml.wheel readonly CONSOLE_SCRAPERS="screenscrapER mobygames thegamesdb" readonly ARCADE_SCRAPERS="screenacraper arcadedb" 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 CONSOLE="atari2600 atarilynx fds gamegear gb gba gbc mastersystem megadrive msx nes ngp ngpc pcengine sega32x snes wonderswan wonderswancolor" # atari2600 atarilynx fds gamegear gb gba gbc mastersystem megadrive msx nes ngp ngpc pcengine sega32x snes wonderswan wonderswancolor for SYSTEM in $CONSOLE; do if [ "$SCRAP" = true ]; then for SCRAPER in $CONSOLE_SCRAPERS; do Skyscraper --flags videos,unattend,noresize,unpack -p "${SYSTEM}" -s "${SCRAPER}" done fi if [ "$BUILD" = true ]; then Skyscraper --flags videos,unattend,forcefilename,relative,skipexistingvideos -a $CONSOLE_ART -p "$SYSTEM" -f "${FRONTEND}" #Skyscraper --flags videos,unattend,relative,skipexistingvideos -a $CONSOLE_ART -p $i fi done ## CONSOLE CD CONSOLECD="pcengine psx segacd" # pcengine segacd psx saturn mv -v "${ROM_DIR}"/pcengine "${ROM_DIR}"/pcengine.cart mv -v "${ROM_DIR}"/pcenginecd "${ROM_DIR}"/pcengine for SYSTEM in $CONSOLECD; do if [ "$SCRAP" = true ]; then for SCRAPER in $CONSOLE_SCRAPERS; do Skyscraper --flags videos,unattend,noresize -p "$SYSTEM" -s "$SCRAPER" done fi if [ "$BUILD" = true ]; then Skyscraper --flags videos,unattend,forcefilename,relative,skipexistingvideos,nobrackets -a $CONSOLECD_ART -p "$SYSTEM" -f "${FRONTEND}" fi done mv -v "${ROM_DIR}"/pcengine "${ROM_DIR}"/pcenginecd mv -v "${ROM_DIR}"/pcengine.cart "${ROM_DIR}"/pcengine ## ARCADE arcade="fba neogeo mame-advmame mame-mame4all" # fba neogeo mame-advmame mame-mame4all for SYSTEM in $arcade; do if [ "$SCRAP" = true ]; then for SCRAPER in $ARCADE_SCRAPERS; do Skyscraper --flags videos,unattend,noresize -p "$SYSTEM" -s "$SCRAPER" done fi if [ "$BUILD" = true ]; then Skyscraper --flags videos,unattend,relative,skipexistingvideos,nobrackets -a $ARCADE_ART -p "$SYSTEM" -f "${FRONTEND}" fi done ## Available artworks # artwork.xml.screenshot # artwork.xml.cover # artwork.xml.wheel # artwork.xml.example1 ## Available platforms: # 3do # 3ds # amiga # amstradcpc # apple2 # arcade # arcadia # astrocde # atari800 # atari2600 # atari5200 # atari7800 # atarijaguar # atarilynx # atarist # c16 # c64 # c128 # coco # coleco # daphne # dragon32 # dreamcast # fba # fds # gameandwatch # gamegear # gb # gba # gbc # gc # genesis # intellivision # mame-advmame # mame-libretro # mame-mame4all # mastersystem # megacd # megadrive # msx # n64 # nds # neogeo # nes # ngp # ngpc # oric # pc # pc88 # pc98 # pcfx # pcengine # pokemini # ports # ps2 # psp # psx # saturn # scummvm # sega32x # segacd # sg-1000 # snes # steam # ti99 # trs-80 # vectrex # vic20 # videopac # virtualboy # wii # wonderswan # wonderswancolor # x68000 # x1 # zmachine # zx81 # zxspectrum