This commit is contained in:
GenZmeY 2020-08-08 03:40:13 +03:00
parent fd2b147ab6
commit f942c10f81
6 changed files with 34 additions and 61 deletions

0
SOURCES/config/kf2-srv.conf Executable file → Normal file
View File

View File

@ -36,12 +36,12 @@ function cmd_help ()
function cmd_need_superuser () function cmd_need_superuser ()
{ {
false true
} }
function cmd_need_steamuser () function cmd_need_steamuser ()
{ {
true false
} }
function cmd_main () function cmd_main ()

View File

@ -36,12 +36,12 @@ function cmd_help ()
function cmd_need_superuser () function cmd_need_superuser ()
{ {
false true
} }
function cmd_need_steamuser () function cmd_need_steamuser ()
{ {
true false
} }
function cmd_main () function cmd_main ()

View File

@ -26,6 +26,31 @@ readonly ScriptVersion=$(rpm -q --queryformat '%{VERSION}' "$ScriptName")
readonly GrpDir=":DEFINE_PREFIX:/share/kf2-srv/cmdgrp" readonly GrpDir=":DEFINE_PREFIX:/share/kf2-srv/cmdgrp"
readonly LibDir=":DEFINE_PREFIX:/share/kf2-srv/lib" readonly LibDir=":DEFINE_PREFIX:/share/kf2-srv/lib"
readonly InstallDir=":DEFINE_PREFIX:/games/kf2-srv${KF2POSTFIX}"
readonly AppBin="$InstallDir/Binaries/Win64/KFGameSteamServer.bin.x86_64"
readonly DefaultConfigDir="$InstallDir/KFGame/Config"
readonly DefaultDownloadDir="$InstallDir/Binaries/Win64/steamapps/workshop"
readonly DefaultCacheDir="$InstallDir/KFGame/Cache"
readonly DefaultLogDir="$InstallDir/KFGame/Logs"
readonly DownloadDir="/var/cache/kf2-srv/workshop"
readonly CacheDir="/var/cache/kf2-srv/cache"
readonly LogDir="/var/log/kf2-srv${KF2POSTFIX}"
readonly InstanceConfigDir="/etc/kf2-srv/instances${KF2POSTFIX}"
readonly 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
function include () # $1: Lib function include () # $1: Lib
{ {
if ! echo "$INC_LIBS" | grep -Foq "$1"; then if ! echo "$INC_LIBS" | grep -Foq "$1"; then
@ -40,7 +65,8 @@ function run_as_steamuser () # $@: command
if [[ "$(whoami)" == "$SteamUser" ]]; then if [[ "$(whoami)" == "$SteamUser" ]]; then
shift 2; cmd_main "$@" shift 2; cmd_main "$@"
elif [[ -n $(groups "$(whoami)" | grep -Fo 'wheel') ]] || [[ "$EUID" -eq 0 ]]; then elif [[ -n $(groups "$(whoami)" | grep -Fo 'wheel') ]] || [[ "$(whoami)" == "root" ]]; then
export INC_LIBS=""
sudo -u "$SteamUser" "$@" sudo -u "$SteamUser" "$@"
else else
echo "You must be a $SteamUser, root or sudo-user to run this command." echo "You must be a $SteamUser, root or sudo-user to run this command."
@ -52,6 +78,7 @@ function run_as_root () # $@: command
if [[ "$(whoami)" == "root" ]]; then if [[ "$(whoami)" == "root" ]]; then
shift 2; cmd_main "$@" shift 2; cmd_main "$@"
elif [[ -n $(groups "$(whoami)" | grep -Fo 'wheel') ]]; then elif [[ -n $(groups "$(whoami)" | grep -Fo 'wheel') ]]; then
export INC_LIBS=""
sudo "$@" sudo "$@"
else else
echo "You must be root or sudo-user to run this command." echo "You must be root or sudo-user to run this command."

View File

@ -42,17 +42,9 @@ function fix_ini_permissions () # $1: Dir
sh -c "chmod $ForceIniPermissions {}; chown $SteamUser:$ForceIniGroup {}" sh -c "chmod $ForceIniPermissions {}; chown $SteamUser:$ForceIniGroup {}"
} }
function game_run () # $*: Game args function game_run () # $@: Game args
{ {
include /etc/steamcmd/steamcmd.conf
if [[ "$USER" == "$SteamUser" ]]; then
"$AppBin" "$@" "$AppBin" "$@"
elif [[ -n $(groups "$USER" | grep -Fo 'wheel') ]] || [[ "$EUID" -eq 0 ]]; then
sudo -u "$SteamUser" "$AppBin" "$@"
else
echo "You must be a $SteamUser, root or sudo-user to run this command."
fi
} }
function game_update () function game_update ()

View File

@ -1,46 +0,0 @@
#!/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/>.
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