arma3-docker/start.sh

78 lines
2.7 KiB
Bash
Raw Normal View History

2019-04-11 22:53:02 +02:00
#!/bin/bash
STEAM_VOLUME="/home/arma3"
STEAMCMD="$STEAM_VOLUME/steamcmd"
ARMA3_INST="$STEAMCMD/arma3_inst.txt"
WGET_BIN=$(command -v wget)
TAR_BIN=$(command -v tar)
if [ ! -d "$STEAMCMD" ]; then
mkdir -p $STEAMCMD/arma3
fi
if [ ! -z $STEAM_GUARD_CODE ]; then
SGC="set_steam_guard_code $STEAM_GUARD_CODE"
fi
cat << EOF > $STEAMCMD/arma3_inst.txt
// installing arma3
@ShutdownOnFailedCommand 1 //set to 0 if updating multiple servers at once
@NoPromptForPassword 1
$SGC
login $STEAM_LOGIN $STEAM_PASSWORD
force_install_dir ./arma3/
app_update 233780 -beta validate
quit
EOF
$WGET_BIN -O /tmp/steamcmd_linux.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
$TAR_BIN --overwrite -xvzf /tmp/steamcmd_linux.tar.gz -C $STEAMCMD
if [ ! -z ${ARMA3_UPDATE_DATA+x} ] || [ ! -f $STEAMCMD/arma3/server.cfg ]; then
$STEAMCMD/steamcmd.sh +runscript $ARMA3_INST
mkdir -p $HOME/".local/share/Arma 3"
mkdir -p $HOME/".local/share/Arma 3 - Other Profiles"
fi
if [ -z ${ARMA3_SERVER_CFG+x} ]; then
echo "Using the default server.cfg..."
cp /tmp/server.cfg $STEAMCMD/arma3/server.cfg
else
echo "Using custom server.cfg..."
$WGET_BIN -O $STEAMCMD/arma3/server.cfg $ARMA3_SERVER_CFG
local STATUS=$?
if [ $STATUS -ne 0 ]; then
echo "Unable to fetch server.cfg from remote, falling back to default server.cfg..."
cp /tmp/server.cfg $STEAMCMD/arma3/server.cfg
fi
fi
if [ ! -z ${SERVER_UPDATE_PASSWORD+x} ]; then
ADMIN_PASSWORD=$(cat /dev/urandom| tr -dc 'a-zA-Z0-9!#' | fold -w 15 | head -1)
SERVER_COMMAND_PASSWORD=$(cat /dev/urandom| tr -dc 'a-zA-Z0-9!#' | fold -w 15 | head -1)
sed -i "s/passwordAdmin.*/passwordAdmin = \"$ADMIN_PASSWORD\";/g" $STEAMCMD/arma3/server.cfg
sed -i "s/serverCommandPassword.*/serverCommandPassword = \"$SERVER_COMMAND_PASSWORD\";/g" $STEAMCMD/arma3/server.cfg
else
ADMIN_PASSWORD=$(grep passwordAdmin $STEAMCMD/arma3/server.cfg | cut -f2 -d'"')
SERVER_COMMAND_PASSWORD=$(grep serverCommandPassword $STEAMCMD/arma3/server.cfg | cut -f2 -d'"')
fi
echo "admin password: $ADMIN_PASSWORD"
echo "server command password: $SERVER_COMMAND_PASSWORD"
#######################################################
# This is the mod specific part. Anyone can overwrite
# This file to configure a specific mod in top of this
# Arma3 Docker image.
# You just need to define $MOD_SCRIPT when running and
# add it to the image build.
if [ ! -z ${MOD_SCRIPT+x} ] && [ -f $MOD_SCRIPT ]; then
echo "Launching $MOD_SCRIPT to setup mod for this instance"
/bin/bash $MOD_SCRIPT
#######################################################
else
cd $STEAMCMD/arma3/ && ./arma3server -name=public -config=server.cfg -mod="@rhsafrf;@rhsusaf;@rhsgref;"
fi