134 lines
5.1 KiB
Bash
Executable File
134 lines
5.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
## usage
|
|
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
|
|
}
|
|
|
|
## check if there are all the parameters
|
|
if [ "$#" -ne 3 ]; then
|
|
help_message
|
|
exit 0
|
|
fi
|
|
|
|
## check if the frontend parameter is valid
|
|
FRONTENDS="emulationstation pegasus"
|
|
if ! echo "$FRONTENDS" | grep -w "$2" >/dev/null; then
|
|
printf "%s\n" "You must enter a valid FRONTEND name."
|
|
help_message
|
|
exit 0
|
|
fi
|
|
|
|
## parameters
|
|
readonly FRONTEND="$2"
|
|
readonly ROM_DIR="$3"
|
|
|
|
## colors
|
|
readonly COLOR_WHITE=$(tput setaf 7)
|
|
readonly COLOR_BACKGROUND_RED=$(tput setab 1)
|
|
readonly RESET_COLOR=$(tput sgr0)
|
|
|
|
## artwork.xml
|
|
readonly CONSOLE_ART=artwork.xml.cover
|
|
readonly ARCADE_ART=artwork.xml.cover
|
|
|
|
## scrapers
|
|
readonly CONSOLE_SCRAPERS="screenscraper mobygames thegamesdb"
|
|
readonly ARCADE_SCRAPERS="screenacraper arcadedb"
|
|
|
|
## flags
|
|
#readonly BUILD_FLAGS_CONSOLE="videos,unattend,forcefilename,relative,nobrackets,skipexistingcovers,skipexistingmarquees,skipexistingscreenshots,skipexistingvideos,skipexistingwheels"
|
|
readonly BUILD_FLAGS_CONSOLE="videos,unattend,forcefilename,relative"
|
|
#readonly BUILD_FLAGS_ARCADE="videos,unattend,relative,nobrackets,skipexistingcovers,skipexistingmarquees,skipexistingscreenshots,skipexistingvideos,skipexistingwheels"
|
|
readonly BUILD_FLAGS_ARCADE="videos,unattend,relative"
|
|
|
|
## check if BUID, SCRAP or BOTH
|
|
if [ "$1" = scrap ] || [ "$1" = SCRAP ]; then
|
|
BUILD=false
|
|
SCRAP=true
|
|
printf "%s\n" "${COLOR_WHITE}${COLOR_BACKGROUND_RED}## SCRAP ONLY ${RESET_COLOR}"
|
|
sleep 1
|
|
fi
|
|
|
|
if [ "$1" = build ] || [ "$1" = BUILD ]; then
|
|
BUILD=true
|
|
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 systems
|
|
CONSOLE="3do 3ds amiga amstradcpc apple2 arcadia astrocde atari800 atari2600 atari5200 atari7800 atarijaguar atarilynx atarist c16 c64 c128 coco coleco daphne dragon32 dreamcast fds gameandwatch gamegear gb gba gbc gc genesis intellivision mastersystem megacd megadrive msx n64 nds nes ngp ngpc oric pc pc88 pc98 pcfx pcengine pokemini ports ps2 psp psx saturn scummvm sega32x segacd sg-1000 snes ti99 trs-80 vectrex vic20 videopac virtualboy wii wonderswan wonderswancolor x68000 x1 zmachine zx81 zxspectrum"
|
|
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 "${BUILD_FLAGS_CONSOLE}" -a $CONSOLE_ART -p "$SYSTEM" -f "${FRONTEND}" -i "${ROM_DIR}"/"${SYSTEM}"
|
|
fi
|
|
fi
|
|
done
|
|
|
|
## arcade systems
|
|
ARCADE="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 "${BUILD_FLAGS_ARCADE}" -a $ARCADE_ART -p "$SYSTEM" -f "${FRONTEND}" -i "${ROM_DIR}"/"${SYSTEM}"
|
|
fi
|
|
fi
|
|
done
|
|
|
|
## pcenginecd folder
|
|
if test -d "${ROM_DIR}"/pcenginecd; then
|
|
if [ "$SCRAP" = true ]; then
|
|
for SCRAPER in $CONSOLE_SCRAPERS; do
|
|
Skyscraper --flags videos,unattend,noresize,unpack -p pcengine -s "$SCRAPER" -i "${ROM_DIR}"/pcenginecd
|
|
done
|
|
fi
|
|
if [ "$BUILD" = true ]; then
|
|
Skyscraper --flags "${BUILD_FLAGS_CONSOLE}" -a $CONSOLE_ART -p pcengine -f "${FRONTEND}" -i "${ROM_DIR}"/pcenginecd
|
|
fi
|
|
fi
|
|
|
|
## arcade folder
|
|
if test -d "${ROM_DIR}"/arcade; then
|
|
if [ "$SCRAP" = true ]; then
|
|
for SCRAPER in $ARCADE_SCRAPERS; do
|
|
Skyscraper --flags videos,unattend,noresize -p fba -s "$SCRAPER" -i "${ROM_DIR}"/arcade
|
|
done
|
|
fi
|
|
if [ "$BUILD" = true ]; then
|
|
Skyscraper --flags "${BUILD_FLAGS_ARCADE}" -a $ARCADE_ART -p fba -f "${FRONTEND}" -i "${ROM_DIR}"/arcade
|
|
fi
|
|
fi
|
|
|
|
## post-script job. add extensions text to pegasus
|
|
find "${ROM_DIR}" -type f -iname "metadata.pegasus.txt" -exec sed -i '2 a extensions: zip, chd, cue, iso, cso' {} \;
|