2022-03-27 13:30:22 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
2022-10-24 19:49:47 +00:00
|
|
|
source /app/libexec/global.sh
|
2022-11-18 20:10:17 +00:00
|
|
|
source /app/libexec/post_update.sh
|
2022-07-10 19:48:19 +00:00
|
|
|
|
2022-05-19 14:30:43 +00:00
|
|
|
# Arguments section
|
|
|
|
|
2022-05-18 14:10:32 +00:00
|
|
|
for i in "$@"; do
|
|
|
|
case $i in
|
|
|
|
-h*|--help*)
|
2022-09-06 12:46:59 +00:00
|
|
|
echo "RetroDECK v""$version"
|
2022-05-18 14:10:32 +00:00
|
|
|
echo "
|
|
|
|
Usage:
|
|
|
|
flatpak run [FLATPAK-RUN-OPTION] net.retrodeck-retrodeck [ARGUMENTS]
|
|
|
|
|
|
|
|
Arguments:
|
2023-03-07 16:28:57 +00:00
|
|
|
-h, --help Print this help
|
|
|
|
-v, --version Print RetroDECK version
|
|
|
|
--info-msg Print paths and config informations
|
|
|
|
--configure Starts the RetroDECK Configurator
|
|
|
|
--compress <file> Compresses target file to .chd format. Supports .cue, .iso and .gdi formats
|
|
|
|
--reset-emulator <emulator> Reset one or more emulator configs to the default values
|
|
|
|
--reset-tools Reset the RetroDECK Tools section
|
|
|
|
--reset-retrodeck Starts the initial RetroDECK installer (backup your data first!)
|
2022-05-18 14:10:32 +00:00
|
|
|
|
|
|
|
For flatpak run specific options please run: flatpak run -h
|
|
|
|
|
|
|
|
https://retrodeck.net
|
|
|
|
"
|
|
|
|
exit
|
|
|
|
;;
|
|
|
|
--version*|-v*)
|
2022-08-04 19:40:04 +00:00
|
|
|
echo "RetroDECK v$version"
|
|
|
|
exit
|
|
|
|
;;
|
|
|
|
--info-msg*)
|
|
|
|
echo "RetroDECK v$version"
|
|
|
|
echo "RetroDECK config file is in: $rd_conf"
|
|
|
|
echo "Contents:"
|
|
|
|
cat $rd_conf
|
2022-05-18 14:10:32 +00:00
|
|
|
exit
|
|
|
|
;;
|
2023-03-06 17:50:25 +00:00
|
|
|
--compress*)
|
|
|
|
if [[ ! -z $2 ]]; then
|
|
|
|
if [[ -f $2 ]]; then
|
|
|
|
validate_for_chd $2
|
|
|
|
else
|
|
|
|
echo "File not found, please specify the full path to the file to be compressed."
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo "Please use this command format \"--compress <full path to cue/gdi/iso file>\""
|
|
|
|
fi
|
2023-03-06 20:18:22 +00:00
|
|
|
exit
|
2023-03-06 17:50:25 +00:00
|
|
|
;;
|
|
|
|
--configure*)
|
|
|
|
sh /var/config/retrodeck/tools/configurator.sh
|
2023-03-06 20:18:22 +00:00
|
|
|
exit
|
2023-03-06 17:50:25 +00:00
|
|
|
;;
|
2023-03-07 16:28:57 +00:00
|
|
|
--reset-emulator*)
|
|
|
|
echo "You are about to reset one or more RetroDECK emulators."
|
|
|
|
echo "Available options are: retroarch citra dolphin duckstation melonds pcsx2 ppsspp primehack rpcs3 xemu yuzu all-emulators"
|
|
|
|
read -p "Please enter the emulator you would like to reset: " emulator
|
|
|
|
if [[ "$emulator" =~ ^(retroarch|citra|dolphin|duckstation|melonds|pcsx2|ppsspp|primehack|rpcs3|xemu|yuzu|all-emulators)$ ]]; then
|
|
|
|
read -p "You are about to reset $emulator to default settings. Press 'y' to continue, 'n' to stop: " response
|
|
|
|
if [[ $response == [yY] ]]; then
|
|
|
|
cli_emulator_reset $emulator
|
|
|
|
read -p "The process has been completed, press any key to start RetroDECK."
|
|
|
|
shift # Continue launch after previous command is finished
|
|
|
|
else
|
|
|
|
read -p "The process has been cancelled, press any key to exit."
|
|
|
|
exit
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo "$emulator is not a valid selection, exiting..."
|
|
|
|
exit
|
|
|
|
fi
|
2022-05-19 14:30:43 +00:00
|
|
|
;;
|
|
|
|
--reset-tools*)
|
2023-03-07 16:28:57 +00:00
|
|
|
echo "You are about to reset the RetroDECK tools."
|
|
|
|
read -p "Press 'y' to continue, 'n' to stop: " response
|
|
|
|
if [[ $response == [yY] ]]; then
|
|
|
|
tools_init
|
|
|
|
read -p "The process has been completed, press any key to start RetroDECK."
|
|
|
|
shift # Continue launch after previous command is finished
|
|
|
|
else
|
|
|
|
read -p "The process has been cancelled, press any key to exit."
|
|
|
|
exit
|
|
|
|
fi
|
2022-05-18 14:10:32 +00:00
|
|
|
;;
|
2023-03-07 16:28:57 +00:00
|
|
|
--reset-retrodeck*)
|
|
|
|
echo "You are about to reset RetroDECK completely."
|
|
|
|
read -p "Press 'y' to continue, 'n' to stop: " response
|
|
|
|
if [[ $response == [yY] ]]; then
|
|
|
|
rm -f "$lockfile"
|
|
|
|
read -p "The process has been completed, press any key to start RetroDECK."
|
|
|
|
shift # Continue launch after previous command is finished
|
|
|
|
else
|
|
|
|
read -p "The process has been cancelled, press any key to exit."
|
|
|
|
exit
|
|
|
|
fi
|
2022-05-20 06:37:43 +00:00
|
|
|
;;
|
2022-05-18 14:10:32 +00:00
|
|
|
-*|--*)
|
|
|
|
echo "Unknown option $i"
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
2022-05-19 14:30:43 +00:00
|
|
|
# UPDATE TRIGGERED
|
2022-09-06 12:46:59 +00:00
|
|
|
# if lockfile exists
|
|
|
|
if [ -f "$lockfile" ]
|
2022-03-28 13:01:47 +00:00
|
|
|
then
|
2022-09-06 12:46:59 +00:00
|
|
|
# ...but the version doesn't match with the config file
|
2022-10-13 12:21:30 +00:00
|
|
|
if [ "$hard_version" != "$version" ];
|
2022-09-06 12:46:59 +00:00
|
|
|
then
|
2022-12-22 15:34:50 +00:00
|
|
|
echo "Config file's version is $version but the actual version is $hard_version"
|
|
|
|
post_update # Executing post update script
|
2022-09-06 12:46:59 +00:00
|
|
|
fi
|
|
|
|
# Else, LOCKFILE IS NOT EXISTING (WAS REMOVED)
|
2022-05-19 14:30:43 +00:00
|
|
|
# if the lock file doesn't exist at all means that it's a fresh install or a triggered reset
|
2022-10-13 12:21:30 +00:00
|
|
|
else
|
2022-05-19 14:30:43 +00:00
|
|
|
echo "Lockfile not found"
|
2022-07-22 17:23:38 +00:00
|
|
|
finit # Executing First/Force init
|
2022-04-02 09:21:05 +00:00
|
|
|
fi
|
2022-05-19 14:30:43 +00:00
|
|
|
|
2022-12-22 15:34:50 +00:00
|
|
|
# Normal Startup
|
|
|
|
|
2022-10-03 18:48:07 +00:00
|
|
|
start_retrodeck
|