2020-08-07 07:56:51 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
# kf2-srv is a command line tool for managing a set of Killing Floor 2 servers.
|
|
|
|
# Copyright (C) 2019, 2020 GenZmeY
|
|
|
|
# mailto: genzmey@gmail.com
|
|
|
|
#
|
|
|
|
# This file is part of kf2-srv.
|
|
|
|
#
|
|
|
|
# kf2-srv is free software: you can redistribute it and/or modify
|
|
|
|
# it under the terms of the GNU General Public License as published by
|
|
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
|
|
# (at your option) any later version.
|
|
|
|
#
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
# GNU General Public License for more details.
|
|
|
|
#
|
|
|
|
# You should have received a copy of the GNU General Public License
|
|
|
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
|
2020-08-07 10:51:21 +00:00
|
|
|
function run_as_steamuser () # $@: command
|
|
|
|
{
|
|
|
|
include /etc/steamcmd/steamcmd.conf
|
|
|
|
|
|
|
|
if [[ "$USER" == "$SteamUser" ]]; then
|
|
|
|
"$@"
|
|
|
|
elif [[ -n $(groups "$USER" | grep -Fo 'wheel') ]] || [[ "$EUID" -eq 0 ]]; then
|
|
|
|
sudo -u "$SteamUser" "$@"
|
|
|
|
else
|
|
|
|
echo "You must be a $SteamUser, root or sudo-user to run this command."
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
function run_as_root () # $@: command
|
|
|
|
{
|
|
|
|
if [[ "$EUID" -eq 0 ]]; then
|
|
|
|
"$@"
|
|
|
|
elif [[ -n $(groups "$USER" | grep -Fo 'wheel') ]]; then
|
|
|
|
sudo "$@"
|
|
|
|
else
|
|
|
|
echo "You must be root or sudo-user to run this command."
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2020-08-07 07:56:51 +00:00
|
|
|
InstallDir=":DEFINE_PREFIX:/games/kf2-srv${KF2POSTFIX}"
|
|
|
|
AppBin="$InstallDir/Binaries/Win64/KFGameSteamServer.bin.x86_64"
|
|
|
|
|
|
|
|
DefaultConfigDir="$InstallDir/KFGame/Config"
|
|
|
|
DefaultDownloadDir="$InstallDir/Binaries/Win64/steamapps/workshop"
|
|
|
|
DefaultCacheDir="$InstallDir/KFGame/Cache"
|
|
|
|
DefaultLogDir="$InstallDir/KFGame/Logs"
|
|
|
|
|
|
|
|
DownloadDir="/var/cache/kf2-srv/workshop"
|
|
|
|
CacheDir="/var/cache/kf2-srv/cache"
|
|
|
|
LogDir="/var/log/kf2-srv${KF2POSTFIX}"
|
|
|
|
|
|
|
|
InstanceConfigDir="/etc/kf2-srv/instances${KF2POSTFIX}"
|
|
|
|
InstanceConfigTemplate="/etc/kf2-srv/instance.conf.template"
|
|
|
|
|
|
|
|
readonly AppServerNum="232130"
|
|
|
|
readonly AppClientNum="232090"
|
|
|
|
readonly StrangeConstUID="17825793"
|
|
|
|
readonly ServerBotLogin="srvbot"
|
|
|
|
|
|
|
|
declare -a DiffNames
|
|
|
|
declare -a WaveNames
|
|
|
|
declare -A ModeNames
|
|
|
|
declare -A MutNames
|
|
|
|
|