#!/bin/bash # kf2-srv is a command line tool for managing a set of Killing Floor 2 servers. # Copyright (C) 2019-2021 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 . function password_game () # $1: Password (if empty, use: ''), $*: Instance[s] { include "$LibDir/instance.lib" include "$LibDir/webadmin.lib" if echo "$1" | grep -qP '\s'; then echo "Password should not contain spaces" return 1 fi local Password="$1"; shift local InstanceList="$*" if [[ -z "$InstanceList" ]] ; then InstanceList=$(show_instances) fi for Instance in $InstanceList do ( if instance_exists "$Instance"; then local Config="$InstanceConfigDir/$Instance/LinuxServer-KFGame.ini" local Service=$(service_name "$Instance") if systemctl -q is-active $Service ; then admin_curl "$Instance" "ServerAdmin/policy/passwords" \ --request POST \ --data action="gamepassword" \ --data gamepw1="$Password" \ --data gamepw2="$Password" else multini -s "$Config" "Engine.AccessControl" "GamePassword" "$Password" fi else echo "Instance $Instance not exitst" fi ) & done wait } function password_admin () # $1: Password (if empty, use: ''), $*: Instance[s] { include "$LibDir/instance.lib" include "$LibDir/webadmin.lib" if echo "$1" | grep -qP '\s'; then echo "Password should not contain spaces" return 1 fi local Password="$1"; shift local InstanceList="$*" if [[ -z "$InstanceList" ]] ; then InstanceList=$(show_instances) fi for Instance in $InstanceList do ( if instance_exists "$Instance"; then local Config="$InstanceConfigDir/$Instance/LinuxServer-KFGame.ini" local Service=$(service_name "$Instance") if systemctl -q is-active $Service ; then admin_curl "$Instance" "ServerAdmin/policy/passwords" \ --request POST \ --data action="adminpassword" \ --data adminpw1="$Password" \ --data adminpw2="$Password" else multini -s "$Config" "Engine.AccessControl" "AdminPassword" "$Password" fi else echo "Instance $Instance not exitst" fi ) & done wait }