Skip to content

Instantly share code, notes, and snippets.

@vchuravy
Forked from zipizap/hl2_optirun_start.sh
Created September 8, 2012 14:59
Show Gist options
  • Save vchuravy/3675715 to your computer and use it in GitHub Desktop.
Save vchuravy/3675715 to your computer and use it in GitHub Desktop.
Half Life 2, wine and optirun :)
#!/bin/bash
function msg {
# Description:
# This function echoes-with-colors the arguments passed in
# Usage:
# msg 'whatever you want to print :)'
echo -e '\033[33m\033[44m'$@'\033[0m'
}
function wait_until_pid_finishes {
# Description:
# This function will block and wait untill the process with <pid> terminates
# Usage:
# wait_until_pid_finishes <pid>
_PID=$1
while [ "$(kill -0 $_PID ; echo $?)" == "0" ]; do
sleep 5
done
}
if [ "$1" == "RECALLED_WITH_OPTIRUN" ]; then
#we are being run with optirun :)
msg "$0 starting"
msg "Starting up GW.exe through wine"
wine GW.exe
running = 1
# breathing to let hl2.exe start-up...
while(running){
sleep 5
GW_PID=$(pidof gw.exe)
msg "gw.exe has PID=$HL2_PID"
if GW_PID == 0
running = 0
fi
#wait while hl2.exe is running, until it terminates
wait_until_pid_finishes $HL2_PID
msg "hl2.exe has terminated"
}
msg "$0 terminating"
exit 0
else
#This scripts needs to be called through optirun.
#In order to garantee it, we re-execute using optirun
exec optirun $0 RECALLED_WITH_OPTIRUN
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment