1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #!/bin/sh
- # BepInEx running script
- #
- # This script is used to run a Unity game with BepInEx enabled.
- #
- # Usage: Configure the script below and simply run this script when you want to run your game modded.
- if [ -z "$1" ]; then echo "Please open run.sh in a text editor and configure executable name. Comment or remove this line when you're done." && exit 1; fi
- # -------- SETTINGS --------
- # ---- EDIT AS NEEDED ------
- # EDIT THIS: The name of the executable to run
- # LINUX: This is the name of the Unity game executable
- # MACOS: This is the name of the game app WITHOUT the .app
- executable_name="";
- # The rest is automatically handled by BepInEx
- # Whether or not to enable Doorstop. Valid values: TRUE or FALSE
- export DOORSTOP_ENABLE=TRUE;
- # What .NET assembly to execute. Valid value is a path to a .NET DLL that mono can execute.
- export DOORSTOP_INVOKE_DLL_PATH=${PWD}/BepInEx/core/BepInEx.Preloader.dll;
- # ----- DO NOT EDIT FROM THIS LINE FORWARD ------
- # ----- (unless you know what you're doing) ------
- # Backup current LD_PRELOAD because it can break `file` when running from Steam
- LD_PRELOAD_BAK=$LD_PRELOAD;
- export LD_PRELOAD="";
- doorstop_libs=${PWD}/doorstop_libs;
- arch="";
- executable_path="";
- lib_postfix="";
- os_type=`uname -s`;
- case $os_type in
- Linux*) executable_path=${PWD}/${executable_name};
- lib_postfix="so";;
- Darwin*) executable_path=${PWD}/${executable_name}.app/Contents/MacOS/${executable_name};
- lib_postfix="dylib";;
- *) echo "Cannot identify OS (got $(uname -s))!";
- echo "Please create an issue at https://github.com/BepInEx/BepInEx/issues.";
- exit 1;;
- esac
- # Special case: if there is an arg, use that as executable path
- # Linux: arg is path to the executable
- # MacOS: arg is path to the .app folder which we need to resolve to the exectuable
- if [ -n "$1" ]; then
- case $os_type in
- Linux*) executable_path=$1;;
- Darwin*) executable_name=`basename "$1" .app`;
- executable_path=$1/Contents/MacOS/$executable_name;;
- esac
- fi
- executable_type=`file -b "${executable_path}"`;
- case $executable_type in
- *64-bit*) arch="x64";;
- *32-bit*|*i386*) arch="x86";;
- *) echo "Cannot identify executable type (got ${executable_type})!";
- echo "Please create an issue at https://github.com/BepInEx/BepInEx/issues.";
- exit 1;;
- esac
- doorstop_libname=libdoorstop_${arch}.${lib_postfix};
- export LD_LIBRARY_PATH=${doorstop_libs}:${LD_LIBRARY_PATH};
- export LD_PRELOAD=${doorstop_libs}/$doorstop_libname:$LD_PRELOAD_BAK;
- export DYLD_LIBRARY_PATH=${doorstop_libs};
- export DYLD_INSERT_LIBRARIES=${doorstop_libs}/$doorstop_libname;
- "${executable_path}"
|