#! /bin/bash set -uxe CSTRIKE="$CSSDS/cstrike" 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 "$CSTRIKE/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 "$CSTRIKE" echo "--------------------------------------------------------------" echo "Installed MetaMod $METAMOD_VERSION" echo "--------------------------------------------------------------" fi } install_sourcemod() { # Are we in a sourcemod container and is the sourcemod folder missing? if [ ! -d "$CSTRIKE/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 "$CSTRIKE" echo "--------------------------------------------------------------" echo "Installed SourceMod $SOURCEMOD_VERSION" echo "--------------------------------------------------------------" fi } install_surf() { cd $CSTRIKE if [ ! -d "$CSTRIKE/cfg/influx" ]; then wget "https://influxtimer.com/dl/influx_2_surf.zip" unzip "influx_2_surf.zip" rm "influx_2_surf.zip" echo "--------------------------------------------------------------" echo "Installed InfluxTimer" echo "--------------------------------------------------------------" fi if [ ! -d "$CSTRIKE/addons/sourcemod/scripting/momsurffix" ]; then wget "https://influxtimer.com/dl/influx_2_surf.zip" wget "https://github.com/GAMMACASE/MomSurfFix/releases/download/1.1.5/MomSurfFix2v1.1.5.zip" unzip "MomSurfFix2v1.1.5.zip" rm "MomSurfFix2v1.1.5.zip" echo "--------------------------------------------------------------" echo "Installed MomSurfFix2v1.1.5" 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" } cfg() { cd cp etc/cfg/server.cfg cssds/cstrike/cfg/ } run_cssds() { echo "ready to run" cd "$CSSDS" ./srcds_run_64 -game cstrike \ -port "${SRCDS_PORT}" \ +maxplayers "${SRCDS_MAXPLAYERS}" \ +map "${SRCDS_STARTMAP}" # -ip "${SRCDS_IP}" } main() { # update_cssds # update_tf2ds copy_64bit symlink_binaries steamclient_binary install_metamod install_sourcemod install_surf cfg run_cssds } main