86 lines
2.1 KiB
Bash
Executable File
86 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -eo pipefail
|
|
|
|
VOLUME_HOME="/home/steam/volumes"
|
|
|
|
#
|
|
# STEAM/INSTALL GAME
|
|
#
|
|
|
|
# If STEAM_USER or STEAM_PASSWORD is not set
|
|
if [ -z "$STEAM_USER" ] || [ -z "$STEAM_PASSWORD" ]; then
|
|
echo "STEAM_USER or STEAM_PASSWORD is not set. Its recommended to create a new steam user for the server."
|
|
exit 1
|
|
fi
|
|
|
|
# Update or install Arma 3
|
|
echo "Updating or installing Arma 3..."
|
|
|
|
# https://developer.valvesoftware.com/wiki/SteamCMD
|
|
/home/steam/steamcmd/steamcmd.sh +force_install_dir /home/steam/server +login "$STEAM_USER" "$STEAM_PASSWORD" +app_update 233780 +quit
|
|
|
|
#
|
|
# PREPARE GAME
|
|
#
|
|
|
|
# Check if config file exists
|
|
if [ ! -f "$VOLUME_HOME/config/config.cfg" ]; then
|
|
echo "Config file not found, creating..."
|
|
# TODO: Create config file
|
|
touch "$VOLUME_HOME/config/config.cfg"
|
|
fi
|
|
|
|
# https://community.bistudio.com/wiki/Arma_3:_Startup_Parameters#Server_Options
|
|
SERVER_ARGS="-name server -config=$VOLUME_HOME/config/config.cfg -profiles=$VOLUME_HOME/config/profiles"
|
|
|
|
if [ -n "$LIMIT_FPS" ]; then
|
|
SERVER_ARGS="${SERVER_ARGS} -limitFPS=${LIMIT_FPS}"
|
|
fi
|
|
|
|
if [ -n "$PORT" ]; then
|
|
SERVER_ARGS="${SERVER_ARGS} -port=${PORT}"
|
|
fi
|
|
|
|
#
|
|
# PREAPRE MODS
|
|
#
|
|
|
|
MOD_LINK_DIR="/home/steam/server/mods"
|
|
mkdir -p "$MOD_LINK_DIR"
|
|
rm -f "$MOD_LINK_DIR"/*
|
|
|
|
MODS_TO_LOAD=""
|
|
|
|
for mod_id in $(curl -s "https://steamcommunity.com/sharedfiles/filedetails/?id=$WORKSHOP_COLLECTION" | grep -E 'id="sharedfile_[0-9]+"' | sed 's/.*id="sharedfile_\([0-9]\+\)".*/\1/')
|
|
do
|
|
# Check if directory exists
|
|
if [ ! -d "$VOLUME_HOME/mods/$mod_id" ]; then
|
|
echo "Could not find mod directory for $mod_id"
|
|
echo "Try to download it first"
|
|
exit 1
|
|
fi
|
|
|
|
ln -s "$VOLUME_HOME/mods/$mod_id" "$MOD_LINK_DIR/$mod_id"
|
|
MODS_TO_LOAD="${MODS_TO_LOAD}mods/${mod_id};"
|
|
done
|
|
|
|
if [ -n "$MODS_TO_LOAD" ]; then
|
|
SERVER_ARGS="${SERVER_ARGS} -mod=${MODS_TO_LOAD::-1}"
|
|
fi
|
|
|
|
|
|
# SERVER_ARGS="${SERVER_ARGS} -serverMod=${SERVER_MODS}"
|
|
|
|
#
|
|
# RUN GAME
|
|
#
|
|
|
|
|
|
echo "Starting server with args: "
|
|
echo "$SERVER_ARGS"
|
|
|
|
# Start the server
|
|
echo "Starting the server..."
|
|
/home/steam/server/arma3server_x64 ${SERVER_ARGS}
|