Compare commits

..

7 Commits

Author SHA1 Message Date
f24223a0b9 Mon Jun 22 2020 2020-07-09 02:02:30 +03:00
6bd74c851b Sun May 31 2020 2020-07-09 02:00:53 +03:00
bc4493d042 Wed May 27 2020 2020-07-09 01:59:33 +03:00
1f2a50b164 Mon Apr 27 2020 2020-07-09 01:58:10 +03:00
03b40427af Sat Mar 7 2020 2020-07-09 01:56:38 +03:00
cf7cbbfc85 Sat Jan 18 2020 2020-07-09 01:53:47 +03:00
bfe101b063 Sun Jan 12 2020 2020-07-09 01:52:17 +03:00
11 changed files with 1274 additions and 303 deletions

File diff suppressed because it is too large Load Diff

3
SOURCES/kf2-srv-beta Normal file
View File

@ -0,0 +1,3 @@
#!/bin/bash
/usr/bin/kf2-srv beta $*

View File

@ -0,0 +1,28 @@
[Unit]
Description=Check and Update Killing Floor 2 server
[Service]
Type=oneshot
ExecStart=/usr/bin/kf2-srv-beta --chat 'Scheduled server restart at 4:00 (MSK)'
ExecStart=/usr/bin/kf2-srv-beta --chat 'Server will restart after 30 minutes'
ExecStart=/bin/sleep 15m
ExecStart=/usr/bin/kf2-srv-beta --chat 'Server will restart after 15 minutes'
ExecStart=/bin/sleep 10m
ExecStart=/usr/bin/kf2-srv-beta --chat 'Server will restart after 5 minutes'
ExecStart=/bin/sleep 5m
ExecStart=/usr/bin/kf2-srv-beta --chat 'Server shutting down...'
ExecStart=/bin/sleep 5s
ExecStart=/usr/bin/kf2-srv-beta --update
PrivateTmp=true
PrivateDevices=true
ProtectHome=false
ProtectSystem=false
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,9 @@
[Unit]
Description=Check and Update killing Floor 2 beta job
[Timer]
OnCalendar=Wed, 03:30
Unit=kf2-srv-beta-update.service
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,21 @@
[Unit]
Description=Killing Floor 2 Beta Server Daemon - %i
[Service]
User=steam
Group=steam
Type=simple
StandardOutput=null
StandardError=null
EnvironmentFile=/etc/kf2-srv/instances-beta/%i/main.conf
ExecStart=/usr/games/kf2-srv-beta/Binaries/Win64/KFGameSteamServer.bin.x86_64 ${Map}?Difficulty=${Difficulty}?GameLength=${Length}?Game=${Game}?Mutator=${Mutators}?${Args} configsubdir=instances/%i -webadminport=${PortWeb} -queryport=${PortQuery} -port=${PortGame}
Restart=always
NoNewPrivileges=yes
PrivateTmp=true
PrivateDevices=true
ProtectHome=true
ProtectSystem=false
[Install]
WantedBy=multi-user.target

View File

@ -2,7 +2,21 @@
Description=Check and Update Killing Floor 2 server
[Service]
Type=simple
Type=oneshot
ExecStart=/usr/bin/kf2-srv --chat 'Scheduled server restart at 4:00 (MSK)'
ExecStart=/usr/bin/kf2-srv --chat 'Server will restart after 30 minutes'
ExecStart=/bin/sleep 15m
ExecStart=/usr/bin/kf2-srv --chat 'Server will restart after 15 minutes'
ExecStart=/bin/sleep 10m
ExecStart=/usr/bin/kf2-srv --chat 'Server will restart after 5 minutes'
ExecStart=/bin/sleep 5m
ExecStart=/usr/bin/kf2-srv --chat 'Server shutting down...'
ExecStart=/bin/sleep 5s
ExecStart=/usr/bin/kf2-srv --update
PrivateTmp=true

View File

@ -2,7 +2,7 @@
Description=Check and Update killing Floor 2 job
[Timer]
OnCalendar=Wed, 04:00
OnCalendar=Wed, 03:30
Unit=kf2-srv-update.service
[Install]

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

@ -1 +1,22 @@
BranchName="preview"
# Displays game difficulty
# You can rename them as you like
DiffNames=('Normal' 'Hard' 'Suicide' 'Hell')
# Displays the number of waves
# You can rename them as you like
WaveNames=('4' '7' '10')
# Add custom gamemodes to the end of the list, similar to what is already there:
ModeNames['KFGameContent.KFGameInfo_Survival']='Survival'
ModeNames['KFGameContent.KFGameInfo_WeeklySurvival']='Weekly'
ModeNames['KFGameContent.KFGameInfo_Endless']='Endless'
ModeNames['KFGameContent.KFGameInfo_Objective']='Objective'
ModeNames['KFGameContent.KFGameInfo_VersusSurvival']='Versus'
# Add mutators to the end of the list, similar to what is already there:
MutNames['ServerExtMut.ServerExtMut']='RPG'
# Bot default password
# To change the password for the bot, you must do this here and in WebAdmin.
# Otherwise, the bot will stop working and some actions cannot be done on running servers
ServerBotPassword=VerySecretBotPassword

View File

@ -8,7 +8,7 @@ Type=simple
StandardOutput=null
StandardError=null
EnvironmentFile=/etc/kf2-srv/instances/%i/main.conf
ExecStart=/usr/games/kf2-srv/Binaries/Win64/KFGameSteamServer.bin.x86_64 $Args configsubdir=instances/%i $PortW $PortQ $PortG
ExecStart=/usr/games/kf2-srv/Binaries/Win64/KFGameSteamServer.bin.x86_64 ${Map}?Difficulty=${Difficulty}?GameLength=${Length}?Game=${Game}?Mutator=${Mutators}?${Args} configsubdir=instances/%i -webadminport=${PortWeb} -queryport=${PortQuery} -port=${PortGame}
Restart=always
NoNewPrivileges=yes

View File

@ -1,29 +1,38 @@
LANG=en_US.UTF-8
PortW="-webadminport=8080"
PortQ="-queryport=27015"
PortG="-port=7777"
PortWeb=8080
PortQuery=27015
PortGame=7777
# Default Map
Map=KF-Nuked
# First arg: map name
#
# Difficulty:
# Normal: 0
# Hard: 1
# Suicide: 2
# Hell: 3
#
Difficulty=2
# Game:
# Survival: KFGameContent.KFGameInfo_Survival
# WeeklyOutbreak: KFGameContent.KFGameInfo_WeeklySurvival
# Endless: KFGameContent.KFGameInfo_Endless
# Objective: KFGameContent.KFGameInfo_Objective
# Versus: KFGameContent.KFGameInfo_VersusSurvival
#
Game=KFGameContent.KFGameInfo_Endless
# GameLength:
# 4 waves: 0
# 7 waves: 1
# 10 waves: 2
Args=kf-bioticslab?Difficulty=0?Game=KFGameContent.KFGameInfo_Survival?GameLength=2
Length=2
# Mutators
Mutators=
# Additional parameters
Args=
# Notes for yourself
Description="Default description"
Comment=

View File

@ -1,25 +1,40 @@
%global steamuser steam
Name: kf2-srv
Version: 0.4.0
Release: 1%{dist}
Summary: Killing Floor 2 server
Group: Amusements/Games
License: GNU GPLv3
BuildArch: noarch
Name: kf2-srv
Version: 0.10.0
Release: 1%{dist}
Summary: Killing Floor 2 server
Group: Amusements/Games
License: GNU GPLv3
BuildArch: noarch
Source1: %{name}
Source2: %{name}.conf
Source3: %{name}.xml
Source4: %{name}@.service
Source5: %{name}-update.service
Source6: %{name}-update.timer
Source7: main.conf.template
Source1: %{name}
Source2: %{name}-beta
Source3: %{name}.xml
Source4: %{name}@.service
Source5: %{name}-update.service
Source6: %{name}-update.timer
Source7: main.conf.template
Source8: %{name}-beta@.service
Source9: %{name}-beta-update.service
Source10: %{name}-beta-update.timer
Source11: %{name}.conf
Requires: systemd >= 219
Requires: steamcmd
Requires: systemd >= 219
Requires: steamcmd
Requires: libxml2
Requires: dos2unix
Requires: curl
Requires: grep
Requires: coreutils
Requires: sed
Requires: util-linux
Requires: sudo
Requires: psmisc
Requires: gawk
Requires: multini >= 0.2.3
Provides: %{name}
Provides: %{name}
%description
Command line tool for managing a set of Killing Floor 2 servers.
@ -34,49 +49,94 @@ rm -rf $RPM_BUILD_ROOT
install -m 755 -d %{buildroot}/%{_bindir}
install -m 755 -d %{buildroot}/%{_prefix}/lib/systemd/system
install -m 755 -d %{buildroot}/%{_prefix}/lib/firewalld/services
install -m 755 -d %{buildroot}/%{_sysconfdir}/%{name}
install -m 755 -d %{buildroot}/%{_sysconfdir}/%{name}/instances
install -m 755 -d %{buildroot}/%{_sysconfdir}/%{name}/instances-beta
install -m 755 -d %{buildroot}/%{_sysconfdir}/%{name}/mapcycles
install -m 644 -d %{buildroot}/%{_prefix}/games/%{name}
install -m 644 -d %{buildroot}/%{_prefix}/games/%{name}-beta
install -m 755 %{SOURCE1} %{buildroot}/%{_bindir}
install -m 644 %{SOURCE2} %{buildroot}/%{_sysconfdir}/%{name}
install -m 644 %{SOURCE3} %{buildroot}/%{_prefix}/lib/firewalld/services
install -m 644 %{SOURCE4} %{buildroot}/%{_prefix}/lib/systemd/system
install -m 644 %{SOURCE5} %{buildroot}/%{_prefix}/lib/systemd/system
install -m 644 %{SOURCE6} %{buildroot}/%{_prefix}/lib/systemd/system
install -m 644 %{SOURCE7} %{buildroot}/%{_sysconfdir}/%{name}
sed -i -r "s|^(InstallDir=).*$|\1\"%{_prefix}/games/%{name}\"|g" %{buildroot}/%{_bindir}/%{name}
install -m 755 %{SOURCE1} %{buildroot}/%{_bindir}
install -m 644 %{SOURCE2} %{buildroot}/%{_bindir}
install -m 644 %{SOURCE3} %{buildroot}/%{_prefix}/lib/firewalld/services
install -m 644 %{SOURCE4} %{buildroot}/%{_prefix}/lib/systemd/system
install -m 644 %{SOURCE5} %{buildroot}/%{_prefix}/lib/systemd/system
install -m 644 %{SOURCE6} %{buildroot}/%{_prefix}/lib/systemd/system
install -m 644 %{SOURCE7} %{buildroot}/%{_sysconfdir}/%{name}
install -m 644 %{SOURCE8} %{buildroot}/%{_prefix}/lib/systemd/system
install -m 644 %{SOURCE9} %{buildroot}/%{_prefix}/lib/systemd/system
install -m 644 %{SOURCE10} %{buildroot}/%{_prefix}/lib/systemd/system
install -m 644 %{SOURCE11} %{buildroot}/%{_sysconfdir}/%{name}
%clean
rm -rf $RPM_BUILD_ROOT
%files
%attr(775,root,%{steamuser}) %dir %{_prefix}/games/%{name}
%attr(755,root,root) %dir %{_sysconfdir}/%{name}
%attr(644,root,root) %{_sysconfdir}/%{name}/main.conf.template
%attr(644,root,root) %config(noreplace) %{_sysconfdir}/%{name}/%{name}.conf
%attr(644,root,root) %config(noreplace) %{_prefix}/lib/firewalld/services/%{name}.xml
%attr(755,root,root) %{_bindir}/%{name}
%attr(644,root,root) %{_prefix}/lib/systemd/system/*
%post
#/bin/env bash
#if [[ $1 -eq 1 ]]; then # First installation
#
#fi
#exit 0
%attr(775,root,%{steamuser}) %dir %{_prefix}/games/%{name}
%attr(775,root,%{steamuser}) %dir %{_prefix}/games/%{name}-beta
%attr(775,root,%{steamuser}) %dir %{_sysconfdir}/%{name}
%attr(775,root,%{steamuser}) %dir %{_sysconfdir}/%{name}/instances
%attr(775,root,%{steamuser}) %dir %{_sysconfdir}/%{name}/instances-beta
%attr(775,root,%{steamuser}) %dir %{_sysconfdir}/%{name}/mapcycles
%attr(644,root,%{steamuser}) %config(noreplace) %{_sysconfdir}/%{name}/main.conf.template
%attr(640,root,%{steamuser}) %config(noreplace) %{_sysconfdir}/%{name}/%{name}.conf
%attr(644,root,root) %config(noreplace) %{_prefix}/lib/firewalld/services/%{name}.xml
%attr(755,root,root) %{_bindir}/%{name}
%attr(755,root,root) %{_bindir}/%{name}-beta
%attr(644,root,root) %{_prefix}/lib/systemd/system/*
%preun
#/bin/env bash
if [[ $1 -eq 0 ]] ; then # Uninstall
%{_bindir}/%{name} --stop
%{_bindir}/%{name} --disable
yes | %{_bindir}/%{name} --delete
rm -f %{_sysconfdir}/%{name}/instances
rm -rf %{_prefix}/games/%{name}/*
rm -rf %{_prefix}/games/%{name}-beta/*
rm -rf %{_sysconfdir}/%{name}/instances/default
rm -rf %{_sysconfdir}/%{name}/instances-beta/default
fi
%changelog
* Mon Jun 22 2020 GenZmeY <genzmey@gmail.com> - 0.10.0-1
- separate mutators setting;
- mutator column in server list;
- chat notifications on restart for updates;
- unban on working servers;
- refactoring.
* Sun May 31 2020 GenZmeY <genzmey@gmail.com> - 0.9.1-1
- fix realtime -mrl with spaces;
- mapcycles directory.
* Wed May 27 2020 GenZmeY <genzmey@gmail.com> - 0.9.0-1
- new main.conf format;
- multiple WebAdmin and http auth by default;
- online actions;
- chat-bot;
- set password;
- refactoring.
* Mon Apr 27 2020 GenZmeY <genzmey@gmail.com> - 0.8.0-1
- use multini for ini edit;
- add mutators support;
- refactoring;
- returned "reboot-updates".
* Sat Mar 7 2020 GenZmeY <genzmey@gmail.com> - 0.7.0-1
- dual versions support;
- check updates;
- bugfixes.
* Sat Jan 18 2020 GenZmeY <genzmey@gmail.com> - 0.6.0-1
- versions;
- instance conf tweaks;
- extended map list;
- clear cache on delete map;
- removed useless messages.
* Sun Jan 12 2020 GenZmeY <genzmey@gmail.com> - 0.5.0-1
- ban admin;
- map admin;
- multiple args support.
* Sun Sep 29 2019 GenZmeY <genzmey@gmail.com> - 0.4.0-1
- Reworked main.template and kf2-srv@.service;
- Add --restart option;