Files
scripts/skyscraper.sh
T
2021-01-15 10:17:33 +01:00

206 lines
4.6 KiB
Bash
Executable File

#!/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