mirror of
https://github.com/eliasstepanik/ark-ac-server-tools.git
synced 2026-01-13 03:18:28 +00:00
Merge doWarnUpdate into doUpdate
This commit is contained in:
parent
e3dbe2847a
commit
e86f7b0ba3
124
tools/arkmanager
124
tools/arkmanager
@ -444,6 +444,64 @@ doInstall() {
|
||||
getCurrentVersion
|
||||
}
|
||||
|
||||
#
|
||||
# Waits for a configurable number of minutes before updating the server
|
||||
#
|
||||
doUpdateWarn(){
|
||||
cd "$arkserverroot"
|
||||
|
||||
local pid=`getServerPID`
|
||||
if [ -n "$pid" ]; then
|
||||
local warnmsg
|
||||
local warnminutes=$(( arkwarnminutes ))
|
||||
if (( warnminutes == 0 )); then
|
||||
warnminutes=60
|
||||
fi
|
||||
|
||||
local warnintervals=( 90 60 45 30 20 15 10 5 4 3 2 1 )
|
||||
|
||||
for warninterval in "${warnintervals[@]}"; do
|
||||
if [ "`getServerPID`" != "$pid" ]; then
|
||||
echo "Server has stopped. Aborting update"
|
||||
return 1
|
||||
fi
|
||||
if (( arkwarnminutes > warninterval )); then
|
||||
if [ -n "$msgWarnUpdateMinutes" ]; then
|
||||
warnmsg="$(printf "$msgWarnUpdateMinutes" "$warnminutes")"
|
||||
else
|
||||
warnmsg="$(printf "This ARK server will shutdown for an update in %d minutes" "$warnminutes")"
|
||||
fi
|
||||
doBroadcastWithEcho "$warnmsg"
|
||||
sleep $(( warnminutes - warninterval ))m
|
||||
warnminutes=$warninterval
|
||||
fi
|
||||
done
|
||||
|
||||
local warnseconds=90
|
||||
warnintervals=( 60 45 30 20 15 10 5 0 )
|
||||
for warninterval in "${warnintervals[@]}"; do
|
||||
if [ "`getServerPID`" != "$pid" ]; then
|
||||
echo "Server has stopped. Aborting update"
|
||||
return 1
|
||||
fi
|
||||
if [ -n "$msgWarnUpdateMinutes" ]; then
|
||||
warnmsg="$(printf "$msgWarnUpdateMinutes" "$warnminutes")"
|
||||
else
|
||||
warnmsg="$(printf "This ARK server will shutdown for an update in %d seconds" "$warnseconds")"
|
||||
fi
|
||||
doBroadcastWithEcho "$warnmsg"
|
||||
sleep $(( warnseconds - warninterval ))s
|
||||
done
|
||||
fi
|
||||
|
||||
if [ "`getServerPID`" != "$pid" ]; then
|
||||
echo "Server has stopped. Aborting update"
|
||||
return 1
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
#
|
||||
# Stop the server, update it and then start it back.
|
||||
#
|
||||
@ -456,6 +514,8 @@ doUpdate() {
|
||||
appupdate=1
|
||||
elif [ "$arg" == "--safe" ]; then
|
||||
updatetype=safe
|
||||
elif [ "$arg" == "--warn" ]; then
|
||||
updatetype=warn
|
||||
fi
|
||||
done
|
||||
|
||||
@ -473,6 +533,10 @@ doUpdate() {
|
||||
sleep 30s
|
||||
done
|
||||
echo "`timestamp`: Save file newer than 1 minute. Performing an update." >> "$logdir/update.log"
|
||||
elif [ "$updatetype" == "warn" ]; then
|
||||
if ! doUpdateWarn; then
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -594,64 +658,6 @@ doInstallMod(){
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# Waits for a configurable number of minutes before updating the server
|
||||
#
|
||||
doWarnUpdate(){
|
||||
cd "$arkserverroot"
|
||||
|
||||
if isUpdateNeeded; then
|
||||
local pid=`getServerPID`
|
||||
if [ -n "$pid" ]; then
|
||||
local warnmsg
|
||||
local warnminutes=$(( arkwarnminutes ))
|
||||
if (( warnminutes == 0 )); then
|
||||
warnminutes=60
|
||||
fi
|
||||
|
||||
local warnintervals=( 90 60 45 30 20 15 10 5 4 3 2 1 )
|
||||
|
||||
for warninterval in "${warnintervals[@]}"; do
|
||||
if [ "`getServerPID`" != "$pid" ]; then
|
||||
echo "Server has stopped. Aborting update"
|
||||
return 1
|
||||
fi
|
||||
if (( arkwarnminutes > warninterval )); then
|
||||
if [ -n "$msgWarnUpdateMinutes" ]; then
|
||||
warnmsg="$(printf "$msgWarnUpdateMinutes" "$warnminutes")"
|
||||
else
|
||||
warnmsg="$(printf "This ARK server will shutdown for an update in %d minutes" "$warnminutes")"
|
||||
fi
|
||||
doBroadcastWithEcho "$warnmsg"
|
||||
sleep $(( warnminutes - warninterval ))m
|
||||
warnminutes=$warninterval
|
||||
fi
|
||||
done
|
||||
|
||||
local warnseconds=90
|
||||
warnintervals=( 60 45 30 20 15 10 5 0 )
|
||||
for warninterval in "${warnintervals[@]}"; do
|
||||
if [ "`getServerPID`" != "$pid" ]; then
|
||||
echo "Server has stopped. Aborting update"
|
||||
return 1
|
||||
fi
|
||||
if [ -n "$msgWarnUpdateMinutes" ]; then
|
||||
warnmsg="$(printf "$msgWarnUpdateMinutes" "$warnminutes")"
|
||||
else
|
||||
warnmsg="$(printf "This ARK server will shutdown for an update in %d seconds" "$warnseconds")"
|
||||
fi
|
||||
doBroadcastWithEcho "$warnmsg"
|
||||
sleep $(( warnseconds - warninterval ))s
|
||||
done
|
||||
fi
|
||||
|
||||
if [ "`getServerPID`" != "$pid" ]; then
|
||||
echo "Server has stopped. Aborting update"
|
||||
fi
|
||||
doUpdate
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# Copies server state to a backup directory
|
||||
#
|
||||
@ -882,7 +888,7 @@ while true; do
|
||||
doUpdate --safe
|
||||
shift
|
||||
elif [ "$2" == "--warn" ]; then
|
||||
doWarnUpdate
|
||||
doUpdate --warn
|
||||
shift
|
||||
else
|
||||
doUpdate
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user