Reset environment variables before switching mods.
This commit is contained in:
@@ -2,11 +2,21 @@
|
||||
|
||||
HERE="$(dirname "$(readlink -f "${0}")")"
|
||||
|
||||
# Override runtime paths
|
||||
# Stash original environment values so they can be restored
|
||||
# when switching to other mods using restore-environment
|
||||
export OPENRA_ORIG_PATH="${PATH}"
|
||||
export OPENRA_ORIG_XDG_DATA_DIRS="${XDG_DATA_DIRS}"
|
||||
export OPENRA_ORIG_DYLD_LIBRARY_PATH="${DYLD_LIBRARY_PATH}"
|
||||
export OPENRA_ORIG_LD_LIBRARY_PATH="${LD_LIBRARY_PATH}"
|
||||
export OPENRA_ORIG_MONO_PATH="${MONO_PATH}"
|
||||
export OPENRA_ORIG_MONO_CFG_DIR="${MONO_CFG_DIR}"
|
||||
export OPENRA_ORIG_MONO_CONFIG="${MONO_CONFIG}"
|
||||
|
||||
# Override runtime paths to use bundled mono and shared libraries
|
||||
export PATH="${HERE}/usr/bin:${PATH}"
|
||||
export XDG_DATA_DIRS="${HERE}/usr/share:${XDG_DATA_DIRS}"
|
||||
export DYLD_LIBRARY_PATH="${HERE}/usr/lib:$DYLD_LIBRARY_PATH"
|
||||
export LD_LIBRARY_PATH="${HERE}/usr/lib:$LD_LIBRARY_PATH"
|
||||
export DYLD_LIBRARY_PATH="${HERE}/usr/lib:${DYLD_LIBRARY_PATH}"
|
||||
export LD_LIBRARY_PATH="${HERE}/usr/lib:${LD_LIBRARY_PATH}"
|
||||
export MONO_PATH="${HERE}/usr/lib/mono/4.5"
|
||||
export MONO_CFG_DIR="${HERE}/etc"
|
||||
export MONO_CONFIG="${HERE}/etc/mono/config"
|
||||
|
||||
@@ -140,6 +140,8 @@ build_appimage() {
|
||||
|
||||
install -m 0755 gtk-dialog.py "${APPDIR}/usr/bin/gtk-dialog.py"
|
||||
|
||||
install -m 0755 restore-environment.sh "${APPDIR}/usr/bin/restore-environment.sh"
|
||||
|
||||
# travis-ci doesn't support mounting FUSE filesystems so extract and run the contents manually
|
||||
./appimagetool-x86_64.AppImage --appimage-extract
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ fi
|
||||
|
||||
# Run the game
|
||||
export SDL_VIDEO_X11_WMCLASS="openra-{MODID}-{TAG}"
|
||||
mono --debug OpenRA.Game.exe Game.Mod={MODID} Engine.LaunchPath="${LAUNCHER}" "${JOIN_SERVER}" "$@"
|
||||
mono --debug OpenRA.Game.exe Game.Mod={MODID} Engine.LaunchPath="${LAUNCHER}" Engine.LaunchWrapper="${HERE}/restore-environment.sh" "${JOIN_SERVER}" "$@"
|
||||
|
||||
# Show a crash dialog if something went wrong
|
||||
if [ $? != 0 ] && [ $? != 1 ]; then
|
||||
|
||||
26
packaging/linux/restore-environment.sh
Executable file
26
packaging/linux/restore-environment.sh
Executable file
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Restore the environment variables that were set by AppRun
|
||||
export PATH="${OPENRA_ORIG_PATH}"
|
||||
export XDG_DATA_DIRS="${OPENRA_ORIG_XDG_DATA_DIRS}"
|
||||
export DYLD_LIBRARY_PATH="${OPENRA_ORIG_DYLD_LIBRARY_PATH}"
|
||||
export LD_LIBRARY_PATH="${OPENRA_ORIG_LD_LIBRARY_PATH}"
|
||||
unset OPENRA_ORIG_PATH OPENRA_ORIG_XDG_DATA_DIRS OPENRA_ORIG_DYLD_LIBRARY_PATH OPENRA_ORIG_LD_LIBRARY_PATH
|
||||
|
||||
unset MONO_PATH MONO_CFG_DIR MONO_CONFIG
|
||||
if [ -n "${OPENRA_ORIG_MONO_PATH}" ]; then
|
||||
export MONO_PATH="${OPENRA_ORIG_MONO_PATH}"
|
||||
fi
|
||||
|
||||
if [ -n "${OPENRA_ORIG_MONO_CFG_DIR}" ]; then
|
||||
export MONO_CFG_DIR="${OPENRA_ORIG_MONO_CFG_DIR}"
|
||||
fi
|
||||
|
||||
if [ -n "${OPENRA_ORIG_MONO_CONFIG}" ]; then
|
||||
export MONO_CONFIG="${OPENRA_ORIG_MONO_CONFIG}"
|
||||
fi
|
||||
|
||||
unset SDL_VIDEO_X11_WMCLASS OPENRA_ORIG_MONO_PATH OPENRA_ORIG_MONO_CFG_DIR OPENRA_ORIG_MONO_CONFIG
|
||||
|
||||
# Run the given command
|
||||
exec "$@"
|
||||
Reference in New Issue
Block a user