FunKey-OS/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/start_launcher

79 lines
1.8 KiB
Bash
Executable File

#!/bin/sh
# Uncomment the following line to get debug info
#set -x
LOCK_FILE="/var/lock/launcher.lock"
INSTANT_PLAY_FILE="/mnt/instant_play"
RESUME_PLAY_FILE="/mnt/resume_play"
PREVENT_LAUNCHER_FILE="/mnt/prevent_launcher"
REBOOTING_FILE="/run/rebooting"
if [ -f "${LOCK_FILE}" ]; then
echo "${LOCK_FILE} already exists"
exit 1
fi
touch "${LOCK_FILE}"
# Sanity cmd: in case these files do not exist
mkdir -p "${MEDNAFEN_HOME}"
cp "/usr/games/lynxboot.img" "/usr/games/mednafen-09x.cfg" "${MEDNAFEN_HOME}/"
# Launch Previous Game if any
if [ -f "${INSTANT_PLAY_FILE}" ]; then
echo "Found Instant Play file, restarting previous game with command: "$(head -n 1 "${INSTANT_PLAY_FILE}")
rm -f "${RESUME_PLAY_FILE}"
mv "${INSTANT_PLAY_FILE}" "${RESUME_PLAY_FILE}"
source "${RESUME_PLAY_FILE}"
rm -f "${RESUME_PLAY_FILE}"
termfix_all
fi
# Then loop to launch the launcher indefinitely
while true; do
# Check if prevent launcher file present
if [ -f "${PREVENT_LAUNCHER_FILE}" ]; then
echo "${PREVENT_LAUNCHER_FILE} file found, not starting launcher"
sleep 5
else
LAUNCHER=$(get_launcher)
if [ ${LAUNCHER} == "gmenu2x" ]; then
# Launch gmenu2x
gmenu2x&
elif [ ${LAUNCHER} == "retrofe" ]; then
# Launch Retrofe
retrofe&
else
DEFAULT_LAUNCHER=retrofe
echo "Not recognized launcher: $LAUNCHER, setting $DEFAULT_LAUNCHER"
set_launcher $DEFAULT_LAUNCHER
fi
# Record the PID into a file, wait for the
# process to terminate and erase the recorded PID
record_pid $!
wait $!
erase_pid
# In case retrofe quits with errors, clear graphic VT
termfix_all
fi
# WD to prevent 100% CPU
sleep 0.5
# Exit if console rebooting
if [ -f $REBOOTING_FILE ]; then
break
fi
done
# Remove lock file and exit
rm "${LOCK_FILE}"
exit 0