115 lines
3.4 KiB
Bash
Executable File
115 lines
3.4 KiB
Bash
Executable File
#! /bin/bash
|
|
|
|
set -uxe
|
|
|
|
SERVER_SECURITY_FLAG=""
|
|
|
|
update_cssds() {
|
|
cd $STEAMCMD
|
|
./steamcmd.sh +runscript "$HOME/etc/update_cssds.txt"
|
|
|
|
echo "--------------------------------------------------------------"
|
|
echo "CSS DS is up to date"
|
|
echo "--------------------------------------------------------------"
|
|
}
|
|
|
|
update_tf2ds() {
|
|
cd $STEAMCMD
|
|
./steamcmd.sh +runscript "$HOME/etc/update_tf2ds.txt"
|
|
|
|
echo "--------------------------------------------------------------"
|
|
echo "TF2 DS is up to date"
|
|
echo "--------------------------------------------------------------"
|
|
}
|
|
|
|
install_metamod() {
|
|
# is the metamod folder missing?
|
|
if [ ! -d "$CSSDS/addons/metamod" ]; then
|
|
LATESTMM=$(wget -qO- https://mms.alliedmods.net/mmsdrop/"${METAMOD_VERSION}"/mmsource-latest-linux)
|
|
wget -qO- https://mms.alliedmods.net/mmsdrop/"${METAMOD_VERSION}"/"${LATESTMM}" | tar xvzf - -C "$CSSDS"
|
|
echo "--------------------------------------------------------------"
|
|
echo "Installed MetaMod $METAMOD_VERSION"
|
|
echo "--------------------------------------------------------------"
|
|
fi
|
|
}
|
|
|
|
install_sourcemod() {
|
|
# Are we in a sourcemod container and is the sourcemod folder missing?
|
|
if [ ! -d "$CSSDS/addons/sourcemod" ]; then
|
|
LATESTSM=$(wget -qO- https://sm.alliedmods.net/smdrop/"${SOURCEMOD_VERSION}"/sourcemod-latest-linux)
|
|
wget -qO- https://sm.alliedmods.net/smdrop/"${SOURCEMOD_VERSION}"/"${LATESTSM}" | tar xvzf - -C "$CSSDS"
|
|
echo "--------------------------------------------------------------"
|
|
echo "Installed SourceMod $SOURCEMOD_VERSION"
|
|
echo "--------------------------------------------------------------"
|
|
fi
|
|
}
|
|
|
|
copy_64bit() {
|
|
cp -a "$TF2DS/bin/linux64/libsteam_api.so" \
|
|
"$CSSDS/bin/linux64/."
|
|
cp -a "$TF2DS/srcds_linux64" "$TF2DS/srcds_run_64" \
|
|
"$CSSDS/."
|
|
}
|
|
|
|
symlink_binaries() {
|
|
cd "$CSSDS/bin/linux64"
|
|
|
|
for file in *_srv.so; do
|
|
echo "Symlinking \"$file\" to \"${file/_srv/}"
|
|
ln -nfs "$file" "${file/_srv/}"
|
|
done
|
|
}
|
|
|
|
steamclient_binary() {
|
|
echo "Looking for steamclient.so and symlinking it..."
|
|
local _steamclient64bit=$(find "$HOME" -type f -name 'steamclient.so' | grep "linux64" | head -n 1)
|
|
if [ ! -n $_steamclient64bit ]; then
|
|
echo "Could not locate 64-bit steamclient.so binary. Exiting..."
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$HOME/.steam/sdk64/" # srcds_linux64 looks for steamclient.so in this directory
|
|
ln -nfs "$_steamclient64bit" "$HOME/.steam/sdk64/steamclient.so"
|
|
ln -nfs "$_steamclient64bit" "$CSSDS/bin/linux64/steamclient.so"
|
|
}
|
|
|
|
run_cssds() {
|
|
if [ "$SRCDS_SECURED" -eq 0 ]; then
|
|
SERVER_SECURITY_FLAG="-insecure";
|
|
fi
|
|
|
|
echo "ready to run"
|
|
cd "$CSSDS"
|
|
# ./srcds_run -game cstrike +map de_dust2 -debug
|
|
# +sv_setsteamaccount "${SRCDS_TOKEN}" \
|
|
# +tv_port "${SRCDS_TV_PORT}" \
|
|
# +clientport "${SRCDS_CLIENT_PORT}" \
|
|
# +rcon_password "${SRCDS_RCONPW}" \
|
|
# +sv_password "${SRCDS_PW}" \
|
|
# +sv_region "${SRCDS_REGION}" \
|
|
# +fps_max "${SRCDS_FPSMAX}" \
|
|
${SERVER_SECURITY_FLAG}
|
|
|
|
./srcds_run_64 -game cstrike \
|
|
-tickrate "${SRCDS_TICKRATE}" \
|
|
-port "${SRCDS_PORT}" \
|
|
+maxplayers "${SRCDS_MAXPLAYERS}" \
|
|
+map "${SRCDS_STARTMAP}" \
|
|
-ip "${SRCDS_IP}" \
|
|
-sv_lan 1
|
|
}
|
|
|
|
main() {
|
|
# update_cssds
|
|
# update_tf2ds
|
|
copy_64bit
|
|
symlink_binaries
|
|
steamclient_binary
|
|
|
|
# install_metamod
|
|
# install_sourcemod
|
|
|
|
run_cssds
|
|
}
|
|
|
|
main |