if [[ "${STEAM_USER}" == "" ]] || [[ "${STEAM_PASS}" == "" ]]; then
echo -e "steam user is not set.\n"
echo -e "Using anonymous user.\n"
STEAM_USER=anonymous
STEAM_PASS=""
STEAM_AUTH=""
else
echo -e "user set to ${STEAM_USER}"
fi
cd /tmp
mkdir -p /mnt/server/steamcmd
curl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzvf steamcmd.tar.gz -C /mnt/server/steamcmd
mkdir -p /mnt/server/steamapps
cd /mnt/server/steamcmd
chown -R root:root /mnt
export HOME=/mnt/server
./steamcmd.sh +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s "-beta ${SRCDS_BETAID}" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s "-betapassword ${SRCDS_BETAPASS}" ) ${INSTALL_FLAGS} validate +quit
mkdir -p /mnt/server/.steam/sdk32
cp -v linux32/steamclient.so ../.steam/sdk32/steamclient.so
mkdir -p /mnt/server/.steam/sdk64
cp -v linux64/steamclient.so ../.steam/sdk64/steamclient.so
export SERVER_CFG=/mnt/server/cfg/server.cfg
if [ ! -f "$SERVER_CFG" ]; then
echo "Generating server config"
mkdir "$(dirname "$SERVER_CFG")"
cat > "$SERVER_CFG" <<EOF
SERVER = {
port = $SERVER_PORT, // [0 - 65535] Server default port
slots = $SERVER_SLOTS, // [1 - 250] Server default slots
password = $SERVER_PASSWORD, // Leave blank for no password
maxClientLatencySeconds = 30,
pauseWhenEmpty = true,
giveClientsPower = true, // If true, clients will have much more power over what hits them, their position etc
logging = true, // If true, will create log files for each server start
language = en,
unloadLevelsCooldown = 30, // The number of seconds a level will stay loaded after the last player has left it
worldBorderSize = -1, // The max distance from spawn players can travel. -1 for no border
droppedItemsLifeMinutes = 0, // Minutes that dropped items will stay in the world. 0 or less for indefinite
unloadSettlements = false, // If the server should unload player settlements or keep them loaded
maxSettlementsPerPlayer = -1, // The maximum amount of settlements per player. -1 or less means infinite
maxSettlersPerSettlement = -1, // The maximum amount of settlers per settlement. -1 or less means infinite
jobSearchRange = 100, // The tile search range of settler jobs
zipSaves = true, // If true, will create new saves uncompressed
MOTD = // Message of the day
}
EOF
fi
echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"