This commit is contained in:
2022-03-25 10:21:32 +01:00
parent 56b1feaeb1
commit 0142b29f9a
8 changed files with 153 additions and 940 deletions
+117
View File
@@ -0,0 +1,117 @@
#!/bin/bash
## usage
USAGE="USAGE:
$(basename "$0") source dest system"
function help_message() {
printf "%s\n" "$USAGE"
printf "%s" "Where system are: "
for WORD in $SYSTEM_LIST; do
printf "%s " "$WORD"
done
printf "\n"
}
readonly USAGE
readonly SYSTEM_LIST="console handheld computer cd_system arcade"
## check parameters
if [ "$#" -ne 3 ]; then
help_message
exit 0
fi
## check if the systems parameter is valid
if ! echo "$SYSTEM_LIST" | grep -w "$3" >/dev/null; then
printf "%s\n" "You must enter a valid system name."
help_message
exit 0
fi
## vars
SOURCE="$(
cd -- "$1" >/dev/null 2>&1 || exit
pwd -P
)"
TARGET="$(
cd -- "$2" >/dev/null 2>&1 || exit
pwd -P
)"
readonly SOURCE
readonly TARGET
readonly HOMEBREW=/home/sergio/roms/homebrew
readonly TRANSLATIONS=/home/sergio/roms/translations
readonly HACKS=/home/sergio/roms/hacks
readonly CONSOLE="atari800 atari2600 atari5200 atari7800 coleco fds intellivision mastersystem megadrive n64 nes pcengine sega32x sg-1000 snes"
readonly HANDHELD="atarilynx gamegear gb gba gbc gc ngp ngpc virtualboy wonderswan wonderswancolor"
readonly COMPUTER="amiga amstradcpc apple2 atarist c16 c64 c128 msx x68000 zxspectrum"
readonly CD_SYSTEM="3do atarijaguar dreamcast megacd ngc pcfx pcenginecd ps2 psp psx saturn segacd wii"
readonly ARCADE="arcade"
case $3 in
console)
SCAN_SYSTEM=$CONSOLE
;;
handheld)
SCAN_SYSTEM=$HANDHELD
;;
computer)
SCAN_SYSTEM=$COMPUTER
;;
cd_system)
SCAN_SYSTEM=$CD_SYSTEM
;;
arcade)
SCAN_SYSTEM=$ARCADE
;;
*)
SCAN_SYSTEM=$CONSOLE
;;
esac
## console systems
for SYSTEM in $SCAN_SYSTEM; do
## check source
if test -d "${SOURCE}"/"${SYSTEM}"; then
printf "%s\n" "${SYSTEM}"
mkdir -p "${TARGET}"/"${SYSTEM}"
for FILE in "${SOURCE}"/"${SYSTEM}"/*; do
ln -s "${FILE}" "${TARGET}"/"${SYSTEM}"/"$(basename "${FILE}")"
done
fi
## check homebrew
if test -d "${HOMEBREW}"/"${SYSTEM}"; then
printf "%s\n" "${SYSTEM}/_homebrew"
mkdir -p "${TARGET}"/"${SYSTEM}"/_homebrew
for FILE in "${HOMEBREW}"/"${SYSTEM}"/*; do
ln -s "${FILE}" "${TARGET}"/"${SYSTEM}"/_homebrew/"$(basename "${FILE}")"
done
fi
## check translations
if test -d "${TRANSLATIONS}"/"${SYSTEM}"; then
printf "%s\n" "${SYSTEM}/_translations"
mkdir -p "${TARGET}"/"${SYSTEM}"/_translations
for FILE in "${TRANSLATIONS}"/"${SYSTEM}"/*; do
ln -s "${FILE}" "${TARGET}"/"${SYSTEM}"/_translations/"$(basename "${FILE}")"
done
fi
## check hacks
if test -d "${HACKS}"/"${SYSTEM}"; then
printf "%s\n" "${SYSTEM}/_hacks"
mkdir -p "${TARGET}"/"${SYSTEM}"/_hacks
for FILE in "${HACKS}"/"${SYSTEM}"/*; do
ln -s "${FILE}" "${TARGET}"/"${SYSTEM}"/_hacks/"$(basename "${FILE}")"
done
fi
done