#! /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