78 lines
2.7 KiB
Bash
78 lines
2.7 KiB
Bash
#!/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
|