patchimage/scripts/common/optparse.sh
2016-08-27 14:53:33 +02:00

259 lines
4.1 KiB
Bash

#!/bin/bash
optparse () {
xcount=0
pcount=$#
while [[ $xcount -lt $pcount ]]; do
case ${1} in
--iso=* )
ISO_PATH="${1/*=}"
if [[ -f "${ISO_PATH}" ]]; then
IMAGE=$(readlink -m "${ISO_PATH}")
else
echo -e "ISO not found"
exit 15
fi
;;
--rom=* )
ROM_PATH="${1/*=}"
if [[ -f "${ROM_PATH}" ]]; then
ROM=$(readlink -m "${ROM_PATH}")
else
echo -e "ROM not found"
exit 15
fi
;;
--riivolution=* )
RIIVOLUTION="${1/*=}"
if [[ -f "${RIIVOLUTION}" ]]; then
RIIVOLUTION_ZIP_CUSTOM=$(readlink -m "${RIIVOLUTION}")
else
echo -e "Riivolution patch ${RIIVOLUTION} not found."
exit 21
fi
;;
--patch=* )
PATCH="${1/*=}"
if [[ -f "${PATCH}" ]]; then
PATCH=$(readlink -m "${PATCH}")
else
echo -e "IPS/PPF patch ${PATCH} not found."
exit 21
fi
;;
--customid=* )
CUSTOMID=${1/*=}
if [[ ${#CUSTOMID} != 6 ]]; then
echo -e "CustomID ${CUSTOMID} needs to have 6 digits"
exit 39
fi
;;
--download )
export PATCHIMAGE_RIIVOLUTION_DOWNLOAD=TRUE
;;
--show-download )
export PATCHIMAGE_SHOW_DOWNLOAD=TRUE
;;
--soundtrack )
export PATCHIMAGE_SOUNDTRACK_DOWNLOAD=TRUE
;;
--only-soundtrack )
export PATCHIMAGE_SOUNDTRACK_DOWNLOAD=TRUE
export ONLY_SOUNDTRACK=TRUE
;;
--override-szs )
export MKWIIMM_OVERRIDE_SZS=TRUE
;;
--version=* )
VERSION="${1/*=}"
case ${VERSION} in
EURv1 )
export REG_LETTER=P
;;
EURv2 )
export REG_LETTER=P
;;
USAv1 )
export REG_LETTER=E
;;
USAv2 )
export REG_LETTER=E
;;
JPNv1 )
export REG_LETTER=J
;;
* )
echo -e "unrecognized game version: ${VERSION}"
exit 27
;;
esac
;;
--sharesave )
export PATCHIMAGE_SHARE_SAVE=TRUE
;;
--game=* )
export GAME="${1/*=}"
;;
--list-games )
echo "${SUPPORTED_GAMES_ALL}"
exit 0
;;
--list-games-nsmb )
echo "${SUPPORTED_GAMES_NSMB}"
exit 0
;;
--list-games-mkwiimmfi )
echo "${SUPPORTED_GAMES_MKWIIMMFI}"
exit 0
;;
--list-games-tokyo )
echo "${SUPPORTED_GAMES_TOKYOMIRAGESESSIONSFE}"
exit 0
;;
--list-games-kirby )
echo "${SUPPORTED_GAMES_KIRBY}"
exit 0
;;
--list-games-pokemon )
echo "${SUPPORTED_GAMES_POKEMON}"
exit 0
;;
--list-games-3ds )
echo "${SUPPORTED_GAMES_3DS}"
exit 0
;;
--list-games-other )
echo "${SUPPORTED_GAMES_OTHER}"
exit 0
;;
--list-requirements )
echo "${REQUIREMENTS_ALL}"
exit 0
;;
--list-requirements-nsmb )
echo "${REQUIREMENTS_NSMB}"
echo "${REQUIREMENTS_FOOTER}"
exit 0
;;
--list-requirements-mkwiimmfi )
echo "${REQUIREMENTS_MKWIIMMFI}"
echo "${REQUIREMENTS_FOOTER}"
exit 0
;;
--list-requirements-tokyo )
echo "${REQUIREMENTS_TOKYOMIRAGESESSIONSFE}"
echo "${REQUIREMENTS_FOOTER}"
exit 0
;;
--list-requirements-kirby )
echo "${REQUIREMENTS_KIRBY}"
echo "${REQUIREMENTS_FOOTER}"
exit 0
;;
--list-requirements-pokemon )
echo "${REQUIREMENTS_POKEMON}"
echo "${REQUIREMENTS_FOOTER}"
exit 0
;;
--list-requirements-3ds )
echo "${REQUIREMENTS_3DS}"
echo "${REQUIREMENTS_FOOTER}"
exit 0
;;
--list-requirements-other )
echo "${REQUIREMENTS_OTHER}"
echo "${REQUIREMENTS_FOOTER}"
exit 0
;;
--covers )
export PATCHIMAGE_COVER_DOWNLOAD=TRUE
;;
--only-covers=* )
export PATCHIMAGE_COVER_DOWNLOAD=TRUE
download_covers "${1/*=}"
exit 0
;;
--banner=* )
BANNER="${1/*=}"
BANNER_EXT="${BANNER//*./}"
if [[ ${BANNER_EXT} != "bnr" ]]; then
echo "given banner (${BANNER}) is not a .bnr file!"
exit 33
fi
;;
--download-banner )
export PATCHIMAGE_BANNER_DOWNLOAD=TRUE
;;
--xdelta=* )
if [[ -d ${1/*=} ]]; then
export XDELTA_PATH=$(readlink -m "${1/*=}")
else
echo "given directory ${1/*=} does no exist."
exit 75
fi
;;
--cpk=* )
if [[ -d ${1/*=} ]]; then
export CPK_PATH=$(readlink -m "${1/*=}")
else
echo "given directory ${1/*=} does no exist."
exit 75
fi
;;
--help | -h )
echo "${PATCHIMAGE_HELP}"
exit 0
;;
esac
shift
xcount=$((xcount+1))
done
}