Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
21213ff1f1 | |||
f6c8da5609 | |||
8a268ae8ce | |||
0435e68e68 |
187
SOURCES/kf2-srv
187
SOURCES/kf2-srv
@ -22,36 +22,68 @@ source /etc/kf2-srv/kf2-srv.conf
|
|||||||
|
|
||||||
ScriptFullname=$(readlink -e "$0")
|
ScriptFullname=$(readlink -e "$0")
|
||||||
ScriptName=$(echo "$ScriptFullname" | awk -F '/' '{print $NF;}')
|
ScriptName=$(echo "$ScriptFullname" | awk -F '/' '{print $NF;}')
|
||||||
|
|
||||||
AppNum="232130"
|
AppNum="232130"
|
||||||
InstallDir="/usr/games/kf2-srv"
|
InstallDir="/usr/games/kf2-srv"
|
||||||
|
ActiveBranch="$InstallDir/activebranch.txt"
|
||||||
AppBin="$InstallDir/Binaries/Win64/KFGameSteamServer.bin.x86_64"
|
AppBin="$InstallDir/Binaries/Win64/KFGameSteamServer.bin.x86_64"
|
||||||
DefaultConfigDir="$InstallDir/KFGame/Config"
|
DefaultConfigDir="$InstallDir/KFGame/Config"
|
||||||
|
CustomMapsDir="$InstallDir/KFGame/Cache"
|
||||||
InstanceConfigDir="$DefaultConfigDir/instances"
|
InstanceConfigDir="$DefaultConfigDir/instances"
|
||||||
InstanceConfigLnk="/etc/kf2-srv/instances"
|
InstanceConfigLnk="/etc/kf2-srv/instances"
|
||||||
MainConfigTemplate="/etc/kf2-srv/main.conf.template"
|
MainConfigTemplate="/etc/kf2-srv/main.conf.template"
|
||||||
|
|
||||||
|
DiffArray=('Normal' 'Hard' 'Suicide' 'Hell')
|
||||||
|
WaveArray=('4' '7' '10')
|
||||||
|
declare -A ModeArray
|
||||||
|
ModeArray['KFGameContent.KFGameInfo_Survival']='Survival'
|
||||||
|
ModeArray['KFGameContent.KFGameInfo_WeeklySurvival']='Weekly'
|
||||||
|
ModeArray['KFGameContent.KFGameInfo_Endless']='Endless'
|
||||||
|
ModeArray['KFGameContent.KFGameInfo_Objective']='Objective'
|
||||||
|
ModeArray['KFGameContent.KFGameInfo_VersusSurvival']='Versus'
|
||||||
|
|
||||||
function show_help ()
|
function show_help ()
|
||||||
{
|
{
|
||||||
echo "kf2-srv"
|
echo "$ScriptName"
|
||||||
echo ""
|
echo "Централизование управление серверами Killing Floor 2"
|
||||||
echo "Usage:"
|
echo "Usage:"
|
||||||
echo "$ScriptName OPTION [INSTANCE]"
|
echo "$ScriptName OPTION [INSTANCE]"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Mandatory arguments to long options are mandatory for short options too."
|
echo "Mandatory arguments to long options are mandatory for short options too."
|
||||||
echo " -n, --new INSTANCE TODO: description"
|
echo "TODO: English description"
|
||||||
echo " -d, --delete [INSTANCE] TODO: description"
|
echo " -n, --new INSTANCE создает новый ЭКЗЕМПЛЯР сервера"
|
||||||
echo " -l, --list TODO: description"
|
echo " -d, --delete [INSTANCE] удаляет указанный ЭКЗМПЛЯР сервера; если"
|
||||||
echo " -s, --status [INSTANCE] TODO: description"
|
echo " ЭКЗЕМПЛЯР не указан, удаляет все сервера"
|
||||||
echo " -u, --update TODO: description"
|
echo " -s, --status [INSTANCE] отображает состояние указанного ЭКЗЕМПЛЯРА"
|
||||||
echo " -r. --run TODO: description"
|
echo " сервера; если ЭКЗЕМПЛЯР не указан,"
|
||||||
echo " --start [INSTANCE] TODO: description"
|
echo " отображает состояние всех экземпляров сервера"
|
||||||
echo " --stop [INSTANCE] TODO: description"
|
echo " -u, --update при первом запуске производит установку KF2;"
|
||||||
echo " --enable [INSTANCE] TODO: description"
|
echo " в дальнейшем устанавливает обновления при их"
|
||||||
echo " --disable [INSTANCE] TODO: description"
|
echo " наличии"
|
||||||
echo " --map-sync TODO: description"
|
echo " -v, --validate проверяет целостность файлов, при"
|
||||||
echo " --ban-sync TODO: description"
|
echo " необходимости перекачивает их."
|
||||||
echo " --map-rotate-save TODO: description"
|
echo " -r, --run [OPTIONS] запускает экземпляр сервера с указанными"
|
||||||
echo " --map-rotate-load TODO: description"
|
echo " ПАРАМЕТРАМИ"
|
||||||
|
echo " --start [INSTANCE] запускает указанный ЭКЗЕМПЛЯР сервера; если"
|
||||||
|
echo " ЭКЗЕМПЛЯР не указан, запускает все"
|
||||||
|
echo " автозапускаемые экземпляры сервера"
|
||||||
|
echo " --stop [INSTANCE] останавливает указанный ЭКЗЕМПЛЯР сервера;"
|
||||||
|
echo " если ЭКЗЕМПЛЯР не указан, останавливает все"
|
||||||
|
echo " экземпляры сервера"
|
||||||
|
echo " --restart [INSTANCE] перезапускает указанный ЭКЗЕМПЛЯР сервера;"
|
||||||
|
echo " если ЭКЗЕМПЛЯР не указан, перезапускает"
|
||||||
|
echo " все автозапускаемые экземпляры сервера"
|
||||||
|
echo " --enable [INSTANCE] добавляет указанный ЭКЗЕМПЛЯР сервера в"
|
||||||
|
echo " автозапуск; если ЭКЗЕМПЛЯР не указан,"
|
||||||
|
echo " добавляет все экземпляры сервера в автозапуск"
|
||||||
|
echo " --disable [INSTANCE] удаляет указанный ЭКЗЕМПЛЯР сервера из"
|
||||||
|
echo " автозапуска; если ЭКЗЕМПЛЯР не указан,"
|
||||||
|
echo " удаляет все экземпляры сервера из автозапуска"
|
||||||
|
echo " --map-sync [INSTANCE] синхронизирует список сторонних карт в"
|
||||||
|
echo " конфигурационном файле ЭКЗЕМПЛЯРА с"
|
||||||
|
echo " имеющимися файлами сторонних карт; если"
|
||||||
|
echo " ЭКЗЕМПЛЯР не указан, синхронизирует все"
|
||||||
|
echo " экземпляры серверов"
|
||||||
echo " -h, --help display this help and exit"
|
echo " -h, --help display this help and exit"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -135,7 +167,7 @@ function new_instance () # $1: InstanceName
|
|||||||
cp -a "$DefaultConfigDir/LinuxServer/LinuxServerInput.ini" "$InstanceDir/LinuxServer"
|
cp -a "$DefaultConfigDir/LinuxServer/LinuxServerInput.ini" "$InstanceDir/LinuxServer"
|
||||||
cp -a "$DefaultConfigDir/LinuxServer/LinuxServerSystemSettings.ini" "$InstanceDir/LinuxServer"
|
cp -a "$DefaultConfigDir/LinuxServer/LinuxServerSystemSettings.ini" "$InstanceDir/LinuxServer"
|
||||||
|
|
||||||
echo "Instance $Instance created. See $InstanceDir for edit configuration"
|
echo "Instance $Instance created. See /etc/$ScriptName/instances/$Instance for edit configuration"
|
||||||
}
|
}
|
||||||
|
|
||||||
function delete_instance () # $1: [InstanceName]
|
function delete_instance () # $1: [InstanceName]
|
||||||
@ -176,10 +208,34 @@ function show_status_implementation () # $1: [InstanceName]
|
|||||||
else
|
else
|
||||||
local IsRuning="dead"
|
local IsRuning="dead"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local Description=$(grep -P 'Description=' "$InstanceConfigDir/$Instance/main.conf" | sed -r 's/(Description=|")//g')
|
local Description=$(grep -P 'Description=' "$InstanceConfigDir/$Instance/main.conf" | sed -r 's/(Description=|")//g')
|
||||||
echo -e "$Instance:$IsEnabled:$IsRuning:$Description"
|
local GamePort=$(grep -Po '"-port=([0-9]+)' "$InstanceConfigDir/$Instance/main.conf" | grep -Po '[0-9]+$')
|
||||||
|
local WebAdminPort=$(grep -Po '"-webadminport=([0-9]+)' "$InstanceConfigDir/$Instance/main.conf" | grep -Po '[0-9]+$')
|
||||||
|
local QueryPort=$(grep -Po '"-queryport=([0-9]+)' "$InstanceConfigDir/$Instance/main.conf" | grep -Po '[0-9]+$')
|
||||||
|
local GameType=$(grep -Po 'Game=([^\?]+)' "$InstanceConfigDir/$Instance/main.conf" | sed -r 's/Game=([^?]+)/\1/g' )
|
||||||
|
local GameLength=$(grep -Po 'GameLength=([0-9]+)' "$InstanceConfigDir/$Instance/main.conf" | grep -Po '[0-9]+$')
|
||||||
|
local GameDifficulty=$(grep -Po 'Difficulty=([0-9]+)' "$InstanceConfigDir/$Instance/main.conf" | grep -Po '[0-9]+$')
|
||||||
|
|
||||||
|
local DisplayGameType=${ModeArray[$GameType]}
|
||||||
|
local DisplayGameLength=${WaveArray[$GameLength]}
|
||||||
|
local DisplayDifficulty=${DiffArray[$GameDifficulty]}
|
||||||
|
|
||||||
|
if [[ "$DisplayGameType" == 'Weekly' || \
|
||||||
|
"$DisplayGameType" == 'Endless' || \
|
||||||
|
"$DisplayGameType" == 'Versus' || \
|
||||||
|
"$DisplayGameType" == 'Objective' ]]; then
|
||||||
|
DisplayGameLength='-'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$DisplayGameType" == 'Weekly' || \
|
||||||
|
"$DisplayGameType" == 'Versus' ]]; then
|
||||||
|
DisplayDifficulty='-'
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "$Instance:$IsEnabled:$IsRuning:$GamePort:$QueryPort:$WebAdminPort:$DisplayGameType:$DisplayGameLength:$DisplayDifficulty:$Description"
|
||||||
else
|
else
|
||||||
echo -e "INSTANCE:AUTORUN:STATE:DESCRIPTION"
|
echo -e "INSTANCE:AUTORUN:STATE:P_GAME:P_QUERY:P_WEB:TYPE:LEN:DIFF:DESCRIPTION"
|
||||||
for Instance in $(show_instances)
|
for Instance in $(show_instances)
|
||||||
do
|
do
|
||||||
show_status_implementation "$Instance"
|
show_status_implementation "$Instance"
|
||||||
@ -192,20 +248,35 @@ function show_status () # $1: [InstanceName]
|
|||||||
show_status_implementation "$1" | column -t -s :
|
show_status_implementation "$1" | column -t -s :
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function validate ()
|
||||||
|
{
|
||||||
|
if [[ -n "$BranchName" ]]; then
|
||||||
|
local BetaArg="-beta $BranchName"
|
||||||
|
fi
|
||||||
|
stop_instance
|
||||||
|
steamcmd +login $SteamLogin +force_install_dir $InstallDir +app_update $AppNum $BetaArg validate +exit
|
||||||
|
echo "$BranchName" > "$ActiveBranch"
|
||||||
|
start_instance
|
||||||
|
}
|
||||||
|
|
||||||
function update_kf2 ()
|
function update_kf2 ()
|
||||||
{
|
{
|
||||||
if [[ -n "$BranchName" ]]; then
|
if [[ -n "$BranchName" ]]; then
|
||||||
local BetaArg="-beta $BranchName"
|
local BetaArg="-beta $BranchName"
|
||||||
fi
|
fi
|
||||||
if ! server_exists; then # First install
|
if ! server_exists; then # First install
|
||||||
chown "root:$SteamUser" "$InstallDir"
|
mkdir -p "$InstanceConfigDir" "$CustomMapsDir" && chown -R "$SteamUser:$SteamUser" "$InstallDir/KFGame"
|
||||||
steamcmd +login $SteamLogin +force_install_dir $InstallDir +app_update $AppNum $BetaArg validate +exit
|
|
||||||
mkdir "$InstanceConfigDir" && chown "$SteamUser:$SteamUser" "$InstanceConfigDir"
|
|
||||||
ln -s "$InstanceConfigDir" "$InstanceConfigLnk"
|
ln -s "$InstanceConfigDir" "$InstanceConfigLnk"
|
||||||
|
echo "$BranchName" > "$ActiveBranch"
|
||||||
|
steamcmd +login $SteamLogin +force_install_dir $InstallDir +app_update $AppNum $BetaArg validate +exit
|
||||||
elif updates_aviable; then # Update
|
elif updates_aviable; then # Update
|
||||||
|
if [[ "$BranchName" == $(cat "$ActiveBranch") ]]; then
|
||||||
stop_instance
|
stop_instance
|
||||||
steamcmd +login $SteamLogin +force_install_dir $InstallDir +app_update $AppNum $BetaArg +exit
|
steamcmd +login $SteamLogin +force_install_dir $InstallDir +app_update $AppNum $BetaArg +exit
|
||||||
start_instance
|
start_instance
|
||||||
|
else
|
||||||
|
validate
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -245,6 +316,25 @@ function stop_instance () # $1: [InstanceName]
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function restart_instance () # $1: [InstanceName]
|
||||||
|
{
|
||||||
|
local Instance="$1"
|
||||||
|
if [[ -n "$Instance" ]] ; then
|
||||||
|
if instance_exists "$Instance"; then
|
||||||
|
systemctl restart $(service_name "$Instance")
|
||||||
|
else
|
||||||
|
echo "Instance $Instance not exitst"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
for Instance in $(show_instances)
|
||||||
|
do
|
||||||
|
if systemctl -q is-enabled $(service_name "$Instance") ; then
|
||||||
|
restart_instance "$Instance"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function enable_instance () # $1: [InstanceName]
|
function enable_instance () # $1: [InstanceName]
|
||||||
{
|
{
|
||||||
local Instance="$1"
|
local Instance="$1"
|
||||||
@ -290,19 +380,41 @@ function run ()
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function map_sync ()
|
function map_sync () # $1: [InstanceName]
|
||||||
{
|
{
|
||||||
# TODO: implementation
|
local Instance="$1"
|
||||||
# подсмотреть в скрипте старого серва
|
if [[ -n "$Instance" ]]; then
|
||||||
# либо забить хер и перевести всё на steamworkshop
|
if instance_exists "$Instance"; then
|
||||||
# последний вариант наверное даже правильнее
|
stop_instance "$Instance"
|
||||||
echo "Dummy..."
|
local Config="$InstanceConfigDir/$Instance/LinuxServer-KFGame.ini"
|
||||||
}
|
for MapFile in $(find "$CustomMapsDir" -type f -name '*.kfm' -printf "%f\n")
|
||||||
|
do
|
||||||
function ban_sync ()
|
MapName=$(echo "$MapFile" | sed -r 's|.kfm$||g')
|
||||||
{
|
if [[ ! -f "$Config" ]]; then
|
||||||
# TODO: implementation
|
echo "$Config does not exist!"
|
||||||
echo "Dummy..."
|
elif grep -qP "MapName=$MapName[ $]" "$Config"; then
|
||||||
|
echo "$MapName is already in $Config."
|
||||||
|
else
|
||||||
|
echo "Adding $MapName to $Config."
|
||||||
|
echo -e "
|
||||||
|
[$MapName KFMapSummary]
|
||||||
|
MapName=$MapName
|
||||||
|
bPlayableInSurvival=True
|
||||||
|
bPlayableInWeekly=True
|
||||||
|
bPlayableInVsSurvival=True
|
||||||
|
bPlayableInEndless=True
|
||||||
|
bPlayableInObjective=False" >> "$Config"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
echo "Instance $Instance not exitst"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
for Instance in $(show_instances)
|
||||||
|
do
|
||||||
|
map_sync "$Instance"
|
||||||
|
done
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function map_rotate_save ()
|
function map_rotate_save ()
|
||||||
@ -322,16 +434,17 @@ case $1 in
|
|||||||
-h|--help ) show_help; ;;
|
-h|--help ) show_help; ;;
|
||||||
-n|--new ) if [[ "$EUID" -eq 0 ]]; then new_instance "$2"; else run_as_root $@; fi;;
|
-n|--new ) if [[ "$EUID" -eq 0 ]]; then new_instance "$2"; else run_as_root $@; fi;;
|
||||||
-d|--delete ) if [[ "$EUID" -eq 0 ]]; then delete_instance "$2"; else run_as_root $@; fi;;
|
-d|--delete ) if [[ "$EUID" -eq 0 ]]; then delete_instance "$2"; else run_as_root $@; fi;;
|
||||||
-l|--list ) show_instances; ;;
|
|
||||||
-s|--status ) show_status "$2"; ;;
|
-s|--status ) show_status "$2"; ;;
|
||||||
-u|--update ) if [[ "$EUID" -eq 0 ]]; then update_kf2 ; else run_as_root $@; fi;;
|
-u|--update ) if [[ "$EUID" -eq 0 ]]; then update_kf2 ; else run_as_root $@; fi;;
|
||||||
|
-v|--validate ) if [[ "$EUID" -eq 0 ]]; then validate ; else run_as_root $@; fi;;
|
||||||
-r|--run ) run $@ ; ;;
|
-r|--run ) run $@ ; ;;
|
||||||
--start ) if [[ "$EUID" -eq 0 ]]; then start_instance "$2"; else run_as_root $@; fi;;
|
--start ) if [[ "$EUID" -eq 0 ]]; then start_instance "$2"; else run_as_root $@; fi;;
|
||||||
--stop ) if [[ "$EUID" -eq 0 ]]; then stop_instance "$2"; else run_as_root $@; fi;;
|
--stop ) if [[ "$EUID" -eq 0 ]]; then stop_instance "$2"; else run_as_root $@; fi;;
|
||||||
|
--restart ) if [[ "$EUID" -eq 0 ]]; then restart_instance "$2"; else run_as_root $@; fi;;
|
||||||
--enable ) if [[ "$EUID" -eq 0 ]]; then enable_instance "$2"; else run_as_root $@; fi;;
|
--enable ) if [[ "$EUID" -eq 0 ]]; then enable_instance "$2"; else run_as_root $@; fi;;
|
||||||
--disable ) if [[ "$EUID" -eq 0 ]]; then disable_instance "$2"; else run_as_root $@; fi;;
|
--disable ) if [[ "$EUID" -eq 0 ]]; then disable_instance "$2"; else run_as_root $@; fi;;
|
||||||
--map-sync ) map_sync; ;;
|
--map-sync ) if [[ "$EUID" -eq 0 ]]; then map_sync "$2"; else run_as_root $@; fi;;
|
||||||
--ban-sync ) ban_sync; ;;
|
|
||||||
--map-rotate-save ) map_rotate_save; ;;
|
--map-rotate-save ) map_rotate_save; ;;
|
||||||
--map-rotate-load ) map_rotate_load; ;;
|
--map-rotate-load ) map_rotate_load; ;;
|
||||||
|
* ) echo "Command not recognized: $1"; exit 1 ;;
|
||||||
esac
|
esac
|
||||||
|
@ -8,7 +8,7 @@ Type=simple
|
|||||||
StandardOutput=null
|
StandardOutput=null
|
||||||
StandardError=null
|
StandardError=null
|
||||||
EnvironmentFile=/etc/kf2-srv/instances/%i/main.conf
|
EnvironmentFile=/etc/kf2-srv/instances/%i/main.conf
|
||||||
ExecStart=/usr/games/kf2-srv/Binaries/Win64/KFGameSteamServer.bin.x86_64 $Map configsubdir=instances/%i $Arg1 $Arg2 $Arg3
|
ExecStart=/usr/games/kf2-srv/Binaries/Win64/KFGameSteamServer.bin.x86_64 $Args configsubdir=instances/%i $PortW $PortQ $PortG
|
||||||
Restart=always
|
Restart=always
|
||||||
|
|
||||||
NoNewPrivileges=yes
|
NoNewPrivileges=yes
|
||||||
|
@ -1,9 +1,29 @@
|
|||||||
LANG=en_US.UTF-8
|
LANG=en_US.UTF-8
|
||||||
|
|
||||||
Map=kf-bioticslab
|
PortW="-webadminport=8080"
|
||||||
|
PortQ="-queryport=27015"
|
||||||
|
PortG="-port=7777"
|
||||||
|
|
||||||
Arg1="-webadminport=8080"
|
# First arg: map name
|
||||||
Arg2="-queryport=27015"
|
#
|
||||||
Arg3="-port=7777"
|
# Difficulty:
|
||||||
|
# Normal: 0
|
||||||
|
# Hard: 1
|
||||||
|
# Suicide: 2
|
||||||
|
# Hell: 3
|
||||||
|
#
|
||||||
|
# Game:
|
||||||
|
# Survival: KFGameContent.KFGameInfo_Survival
|
||||||
|
# WeeklyOutbreak: KFGameContent.KFGameInfo_WeeklySurvival
|
||||||
|
# Endless: KFGameContent.KFGameInfo_Endless
|
||||||
|
# Objective: KFGameContent.KFGameInfo_Objective
|
||||||
|
# Versus: KFGameContent.KFGameInfo_VersusSurvival
|
||||||
|
#
|
||||||
|
# GameLength:
|
||||||
|
# 4 waves: 0
|
||||||
|
# 7 waves: 1
|
||||||
|
# 10 waves: 2
|
||||||
|
Args=kf-bioticslab?Difficulty=0?Game=KFGameContent.KFGameInfo_Survival?GameLength=2
|
||||||
|
|
||||||
|
# Notes for yourself
|
||||||
Description="Default description"
|
Description="Default description"
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
|
%global steamuser steam
|
||||||
|
|
||||||
Name: kf2-srv
|
Name: kf2-srv
|
||||||
Version: 0.1.0
|
Version: 0.4.0
|
||||||
Release: 1%{dist}
|
Release: 1%{dist}
|
||||||
Summary: Killing Floor 2 server
|
Summary: Killing Floor 2 server
|
||||||
Group: Amusements/Games
|
Group: Amusements/Games
|
||||||
@ -20,7 +22,7 @@ Requires: steamcmd
|
|||||||
Provides: %{name}
|
Provides: %{name}
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Killing Floor 2 server
|
Command line tool for managing a set of Killing Floor 2 servers.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
|
|
||||||
@ -49,7 +51,7 @@ sed -i -r "s|^(InstallDir=).*$|\1\"%{_prefix}/games/%{name}\"|g" %{buildroot}/%{
|
|||||||
rm -rf $RPM_BUILD_ROOT
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%attr(775,root,root) %dir %{_prefix}/games/%{name}
|
%attr(775,root,%{steamuser}) %dir %{_prefix}/games/%{name}
|
||||||
%attr(755,root,root) %dir %{_sysconfdir}/%{name}
|
%attr(755,root,root) %dir %{_sysconfdir}/%{name}
|
||||||
%attr(644,root,root) %{_sysconfdir}/%{name}/main.conf.template
|
%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) %{_sysconfdir}/%{name}/%{name}.conf
|
||||||
@ -75,5 +77,22 @@ if [[ $1 -eq 0 ]] ; then # Uninstall
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun Sep 29 2019 GenZmeY <genzmey@gmail.com> - 0.4.0-1
|
||||||
|
- Reworked main.template and kf2-srv@.service;
|
||||||
|
- Add --restart option;
|
||||||
|
- --status option shows more info;
|
||||||
|
- --list option removed.
|
||||||
|
|
||||||
|
* Fri Sep 20 2019 GenZmeY <genzmey@gmail.com> - 0.3.0-1
|
||||||
|
- validate option;
|
||||||
|
- auto validate on change active branch;
|
||||||
|
- port info on --status.
|
||||||
|
|
||||||
|
* Mon Sep 16 2019 GenZmeY <genzmey@gmail.com> - 0.2.1-1
|
||||||
|
- --map-sync bugfixes.
|
||||||
|
|
||||||
|
* Mon Sep 16 2019 GenZmeY <genzmey@gmail.com> - 0.2.0-1
|
||||||
|
- Add --map-sync implementation to kf2-srv.
|
||||||
|
|
||||||
* Sat Sep 14 2019 GenZmeY <genzmey@gmail.com> - 0.1.0-1
|
* Sat Sep 14 2019 GenZmeY <genzmey@gmail.com> - 0.1.0-1
|
||||||
- First version of spec.
|
- First version of spec.
|
||||||
|
Reference in New Issue
Block a user