mirror of
https://github.com/ryujinx-mirror/ryujinx.git
synced 2024-11-30 19:04:28 +01:00
7e0b4bd538
* Fix macOS Updater (once again) * Also fix my brain's issues * Move set -e that lsof doesn't trigger exit 1 * Resolve yesterdays brain malfunction 2 * Revert "Move set -e that lsof doesn't trigger exit 1" This reverts commit 589a630610fff26f6a549d82c73be61b74187327. * Also check if PID exists * Remove lsof and instead check for running processes * Remove empty lines * Increase max iterations * Address feedback * Remove obsolete check for child processes * Update comments * Update comments * I swear this is the last commit * lsof + ps check
58 lines
1.4 KiB
Bash
Executable File
58 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
INSTALL_DIRECTORY=$1
|
|
NEW_APP_DIRECTORY=$2
|
|
APP_PID=$3
|
|
APP_ARGUMENTS="${@:4}"
|
|
|
|
error_handler() {
|
|
local lineno="$1"
|
|
|
|
script="""
|
|
set alertTitle to \"Ryujinx - Updater error\"
|
|
set alertMessage to \"An error occurred during Ryujinx update (updater.sh:$lineno)\n\nPlease download the update manually from our website if the problem persists.\"
|
|
display dialog alertMessage with icon caution with title alertTitle buttons {\"Open Download Page\", \"Exit\"}
|
|
set the button_pressed to the button returned of the result
|
|
|
|
if the button_pressed is \"Open Download Page\" then
|
|
open location \"https://ryujinx.org/download\"
|
|
end if
|
|
"""
|
|
|
|
osascript -e "$script"
|
|
exit 1
|
|
}
|
|
|
|
trap 'error_handler ${LINENO}' ERR
|
|
|
|
# Wait for Ryujinx to exit.
|
|
# If the main process is still acitve, we wait for 1 second and check it again.
|
|
# After the fifth time checking, this script exits with status 1.
|
|
|
|
attempt=0
|
|
while true; do
|
|
if lsof -p $APP_PID +r 1 &>/dev/null || ps -p "$APP_PID" &>/dev/null; then
|
|
if [ "$attempt" -eq 4 ]; then
|
|
exit 1
|
|
fi
|
|
sleep 1
|
|
else
|
|
break
|
|
fi
|
|
(( attempt++ ))
|
|
done
|
|
|
|
sleep 1
|
|
|
|
# Now replace and reopen.
|
|
rm -rf "$INSTALL_DIRECTORY"
|
|
mv "$NEW_APP_DIRECTORY" "$INSTALL_DIRECTORY"
|
|
|
|
if [ "$#" -le 3 ]; then
|
|
open -a "$INSTALL_DIRECTORY"
|
|
else
|
|
open -a "$INSTALL_DIRECTORY" --args "$APP_ARGUMENTS"
|
|
fi
|