Files
HEDZReloaded/build/steamos/builder_osx/steamcmd.sh
2025-03-20 02:21:48 +01:00

85 lines
2.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# verbose
#set -x
set -o pipefail
shopt -s failglob
set -u
log () {
echo "steamcmd.sh[$$]: $*" >&2 || :
}
# This version interprets backslash escapes like echo -e
log_e () {
echo -e "steamcmd.sh[$$]: $*" >&2 || :
}
STEAMROOT="$(cd "$(dirname "$0")" && echo $PWD)"
if [ -z "${STEAMROOT}" ]; then
log $"Couldn't find Steam root directory from "$0", aborting!"
exit 1
fi
STEAMCMD=`basename "$0" .sh`
UNAME=`uname`
if [ "$UNAME" == "Linux" ]; then
STEAMEXE="${STEAMROOT}/linux32/${STEAMCMD}"
PLATFORM="linux32"
export LD_LIBRARY_PATH="$STEAMROOT/$PLATFORM:${LD_LIBRARY_PATH-}"
else # if [ "$UNAME" == "Darwin" ]; then
STEAMEXE="${STEAMROOT}/${STEAMCMD}"
if [ ! -x ${STEAMEXE} ]; then
STEAMEXE="${STEAMROOT}/Steam.AppBundle/Steam/Contents/MacOS/${STEAMCMD}"
fi
export DYLD_LIBRARY_PATH="$STEAMROOT:${DYLD_LIBRARY_PATH-}"
export DYLD_FRAMEWORK_PATH="$STEAMROOT:${DYLD_FRAMEWORK_PATH-}"
fi
ulimit -n 2048
MAGIC_RESTART_EXITCODE=42
: "${DEBUGGER=}"
if [ "$DEBUGGER" == "gdb" ] || [ "$DEBUGGER" == "cgdb" ]; then
ARGSFILE=$(mktemp $USER.steam.gdb.XXXX)
# Set the LD_PRELOAD varname in the debugger, and unset the global version.
: "${LD_PRELOAD=}"
if [ "$LD_PRELOAD" ]; then
echo set env LD_PRELOAD=$LD_PRELOAD >> "$ARGSFILE"
echo show env LD_PRELOAD >> "$ARGSFILE"
unset LD_PRELOAD
fi
# Ditto with LD_LIBRARY_PATH, avoids this below:
# gdb: /home/plagman/src/valve/Steam/main/client/ubuntu12_32/steam-runtime/pinned_libs_64/libcurl.so.4: version `CURL_OPENSSL_4' not found (required by /usr/lib/libdebuginfod.so.1)
: "${LD_LIBRARY_PATH=}"
if [ "$LD_LIBRARY_PATH" ]; then
echo set env LD_LIBRARY_PATH=$LD_LIBRARY_PATH >> "$ARGSFILE"
echo show env LD_LIBRARY_PATH >> "$ARGSFILE"
unset LD_LIBRARY_PATH
fi
# Enable index file caching for reasonable launch time under gdb
echo set index-cache enabled on >> "$ARGSFILE"
echo show index-cache stats >> "$ARGSFILE"
: "${DEBUGGER_ARGS=}"
log "gdb/cgdb launch with ARGSFILE: $ARGSFILE"
log $DEBUGGER -x "$ARGSFILE" $DEBUGGER_ARGS --args "$STEAMEXE" "$@"
$DEBUGGER -x "$ARGSFILE" $DEBUGGER_ARGS --args "$STEAMEXE" "$@"
rm "$ARGSFILE"
else
$DEBUGGER "$STEAMEXE" "$@"
fi
STATUS=$?
if [ $STATUS -eq $MAGIC_RESTART_EXITCODE ]; then
log "Restarting steamcmd by request..."
exec "$0" "$@"
fi
exit $STATUS