Files
scripts/skyscraper.sh
T
2021-01-15 19:16:41 +01:00

249 lines
6.7 KiB
Bash
Executable File

#!/bin/bash
readonly USAGE="
USAGE:
$(basename "$0") [BUILD | SCRAP | BOTH] [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.example2
readonly CONSOLECD_ART=artwork.xml.example2
readonly ARCADE_ART=artwork.xml.example2
readonly CONSOLE_SCRAPERS="screenscraper mobygames thegamesdb"
readonly ARCADE_SCRAPERS="screenacraper arcadedb"
SCRAP=true
BUILD=true
if [ "$1" = scrap ] || [ "$1" = SCRAP ]; then
BUILD=false
printf "%s\n" "${COLOR_WHITE}${COLOR_BACKGROUND_RED}## SCRAP ONLY ${RESET_COLOR}"
sleep 1
fi
if [ "$1" = build ] || [ "$1" = BUILD ]; then
SCRAP=false
printf "%s\n" "${COLOR_WHITE}${COLOR_BACKGROUND_RED}## BUILD ONLY ${RESET_COLOR}"
sleep 1
fi
if [ "$1" = both ] || [ "$1" = BOTH ]; then
SCRAP=true
BUILD=true
printf "%s\n" "${COLOR_WHITE}${COLOR_BACKGROUND_RED}## SCRAP and BUILD ${RESET_COLOR}"
sleep 1
fi
#ALL_SYSTEMS="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"
## CONSOLE
CONSOLE="atari2600 atari7800 atarilynx coleco fds gamegear gb gba gbc mastersystem megadrive msx n64 nds nes ngp ngpc pcengine psp sega32x snes virtualboy wonderswan wonderswancolor"
for SYSTEM in $CONSOLE; do
if test -d "${ROM_DIR}"/"${SYSTEM}"; then
if [ "$SCRAP" = true ]; then
for SCRAPER in $CONSOLE_SCRAPERS; do
Skyscraper --flags videos,unattend,noresize,unpack -p "${SYSTEM}" -s "${SCRAPER}" -i "${ROM_DIR}"/"${SYSTEM}"
done
fi
if [ "$BUILD" = true ]; then
Skyscraper --flags videos,unattend,forcefilename,relative,skipexistingvideos -a $CONSOLE_ART -p "$SYSTEM" -f "${FRONTEND}" -i "${ROM_DIR}"/"${SYSTEM}"
#Skyscraper --flags videos,unattend,relative,skipexistingvideos -a $CONSOLE_ART -p $i
fi
fi
done
## CONSOLE CD
#CONSOLECD="psx segacd dreamcast saturn"
# segacd psx saturn
#for SYSTEM in $CONSOLECD; do
# if test -d "${ROM_DIR}"/"${SYSTEM}"; then
# if [ "$SCRAP" = true ]; then
# for SCRAPER in $CONSOLE_SCRAPERS; do
# Skyscraper --flags videos,unattend,noresize -p "$SYSTEM" -s "$SCRAPER" -i "${ROM_DIR}"/"${SYSTEM}"
# done
# fi
# if [ "$BUILD" = true ]; then
# Skyscraper --flags videos,unattend,forcefilename,relative,skipexistingvideos,nobrackets -a $CONSOLECD_ART -p "$SYSTEM" -f "${FRONTEND}" -i "${ROM_DIR}"/"${SYSTEM}"
# fi
# fi
#done
## ARCADE
arcade="fba neogeo mame-advmame mame-mame4all"
# fba neogeo mame-advmame mame-mame4all
for SYSTEM in $arcade; do
if test -d "${ROM_DIR}"/"${SYSTEM}"; then
if [ "$SCRAP" = true ]; then
for SCRAPER in $ARCADE_SCRAPERS; do
Skyscraper --flags videos,unattend,noresize -p "$SYSTEM" -s "$SCRAPER" -i "${ROM_DIR}"/"${SYSTEM}"
done
fi
if [ "$BUILD" = true ]; then
Skyscraper --flags videos,unattend,relative,skipexistingvideos,nobrackets -a $ARCADE_ART -p "$SYSTEM" -f "${FRONTEND}" -i "${ROM_DIR}"/"${SYSTEM}"
fi
fi
done
## pcenginecd
#mv -v "${ROM_DIR}"/pcengine "${ROM_DIR}"/pcengine.cart
#mv -v "${ROM_DIR}"/pcenginecd "${ROM_DIR}"/pcengine
if test -d "${ROM_DIR}"/pcenginecd; then
if [ "$SCRAP" = true ]; then
for SCRAPER in $CONSOLE_SCRAPERS; do
Skyscraper --flags videos,unattend,noresize -p pcengine -s "$SCRAPER" -i "${ROM_DIR}"/pcenginecd
done
fi
if [ "$BUILD" = true ]; then
Skyscraper --flags videos,unattend,forcefilename,relative,skipexistingvideos,nobrackets -a $CONSOLECD_ART -p pcengine -f "${FRONTEND}" -i "${ROM_DIR}"/pcenginecd
fi
fi
#mv -v "${ROM_DIR}"/pcengine "${ROM_DIR}"/pcenginecd
#mv -v "${ROM_DIR}"/pcengine.cart "${ROM_DIR}"/pcengine
## arcade
if test -d "${ROM_DIR}"/arcade; then
if [ "$SCRAP" = true ]; then
for SCRAPER in $CONSOLE_SCRAPERS; do
Skyscraper --flags videos,unattend,noresize -p fba -s "$SCRAPER" -i "${ROM_DIR}"/arcade
done
fi
if [ "$BUILD" = true ]; then
Skyscraper --flags videos,unattend,forcefilename,relative,skipexistingvideos,nobrackets -a $CONSOLECD_ART -p pcengine -f "${FRONTEND}" -i "${ROM_DIR}"/arcade
fi
fi
## 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