diff --git a/SOURCES/config/kf2-srv.conf b/SOURCES/config/kf2-srv.conf old mode 100755 new mode 100644 diff --git a/SOURCES/main/cmdgrp/game/update b/SOURCES/main/cmdgrp/game/update index ad83474..b7f5572 100644 --- a/SOURCES/main/cmdgrp/game/update +++ b/SOURCES/main/cmdgrp/game/update @@ -36,12 +36,12 @@ function cmd_help () function cmd_need_superuser () { - false + true } function cmd_need_steamuser () { - true + false } function cmd_main () diff --git a/SOURCES/main/cmdgrp/game/validate b/SOURCES/main/cmdgrp/game/validate index 0c6fbb4..eb527d8 100644 --- a/SOURCES/main/cmdgrp/game/validate +++ b/SOURCES/main/cmdgrp/game/validate @@ -36,12 +36,12 @@ function cmd_help () function cmd_need_superuser () { - false + true } function cmd_need_steamuser () { - true + false } function cmd_main () diff --git a/SOURCES/main/kf2-srv b/SOURCES/main/kf2-srv index fa8b647..000747b 100755 --- a/SOURCES/main/kf2-srv +++ b/SOURCES/main/kf2-srv @@ -26,6 +26,31 @@ readonly ScriptVersion=$(rpm -q --queryformat '%{VERSION}' "$ScriptName") readonly GrpDir=":DEFINE_PREFIX:/share/kf2-srv/cmdgrp" 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 { if ! echo "$INC_LIBS" | grep -Foq "$1"; then @@ -40,7 +65,8 @@ function run_as_steamuser () # $@: command if [[ "$(whoami)" == "$SteamUser" ]]; then 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" "$@" else 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 shift 2; cmd_main "$@" elif [[ -n $(groups "$(whoami)" | grep -Fo 'wheel') ]]; then + export INC_LIBS="" sudo "$@" else echo "You must be root or sudo-user to run this command." diff --git a/SOURCES/main/lib/game.lib b/SOURCES/main/lib/game.lib index b865fce..c68091d 100644 --- a/SOURCES/main/lib/game.lib +++ b/SOURCES/main/lib/game.lib @@ -42,17 +42,9 @@ function fix_ini_permissions () # $1: Dir 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" "$@" - 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 + "$AppBin" "$@" } function game_update () diff --git a/SOURCES/main/lib/globals.lib b/SOURCES/main/lib/globals.lib deleted file mode 100644 index 32b4403..0000000 --- a/SOURCES/main/lib/globals.lib +++ /dev/null @@ -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 . - -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 -