Restart wine Discord RPC bridge when it crashes

Co-Authored-By: rs189 <35667100+rs189@users.noreply.github.com>
This commit is contained in:
Natsumi
2024-12-03 07:33:27 +13:00
parent 7a2cfad6e7
commit 0d3a942c02
+17
View File
@@ -2,22 +2,39 @@
export WINEPREFIX=~/.local/share/vrcx export WINEPREFIX=~/.local/share/vrcx
# Function to launch winediscordipcbridge
launch_ipcbridge() {
wine ~/.local/share/vrcx/drive_c/winediscordipcbridge.exe & wine ~/.local/share/vrcx/drive_c/winediscordipcbridge.exe &
IPCBRIDGE_PID=$! IPCBRIDGE_PID=$!
}
# Launch winediscordipcbridge
launch_ipcbridge
# Launch VRCX
wine ~/.local/share/vrcx/drive_c/vrcx/VRCX.exe & wine ~/.local/share/vrcx/drive_c/vrcx/VRCX.exe &
VRCX_PID=$! VRCX_PID=$!
while kill -0 $VRCX_PID 2>/dev/null; do while kill -0 $VRCX_PID 2>/dev/null; do
# Check if VRChat is running
if ps -A | grep -i "VRChat.exe" > /dev/null; then if ps -A | grep -i "VRChat.exe" > /dev/null; then
isGameRunning=true isGameRunning=true
else else
isGameRunning=false isGameRunning=false
fi fi
echo "isGameRunning=$isGameRunning" > "$WINEPREFIX/drive_c/users/$USER/AppData/Roaming/VRCX/wine.tmp" echo "isGameRunning=$isGameRunning" > "$WINEPREFIX/drive_c/users/$USER/AppData/Roaming/VRCX/wine.tmp"
# Check if winediscordipcbridge is running
if ! kill -0 $IPCBRIDGE_PID 2>/dev/null; then
echo "winediscordipcbridge.exe not running, restarting..."
launch_ipcbridge
fi
sleep 1 sleep 1
done done
# Cleanup after VRCX exits
echo "isGameRunning=false" > "$WINEPREFIX/drive_c/users/$USER/AppData/Roaming/VRCX/wine.tmp" echo "isGameRunning=false" > "$WINEPREFIX/drive_c/users/$USER/AppData/Roaming/VRCX/wine.tmp"
# Kill winediscordipcbridge if it's still running
kill $IPCBRIDGE_PID 2>/dev/null kill $IPCBRIDGE_PID 2>/dev/null