mirror of
https://github.com/eliasstepanik/ark-ac-server-tools.git
synced 2026-01-27 08:48:27 +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
|
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.
|
# Stop the server, update it and then start it back.
|
||||||
#
|
#
|
||||||
@ -456,6 +514,8 @@ doUpdate() {
|
|||||||
appupdate=1
|
appupdate=1
|
||||||
elif [ "$arg" == "--safe" ]; then
|
elif [ "$arg" == "--safe" ]; then
|
||||||
updatetype=safe
|
updatetype=safe
|
||||||
|
elif [ "$arg" == "--warn" ]; then
|
||||||
|
updatetype=warn
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -473,6 +533,10 @@ doUpdate() {
|
|||||||
sleep 30s
|
sleep 30s
|
||||||
done
|
done
|
||||||
echo "`timestamp`: Save file newer than 1 minute. Performing an update." >> "$logdir/update.log"
|
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
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -594,64 +658,6 @@ doInstallMod(){
|
|||||||
fi
|
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
|
# Copies server state to a backup directory
|
||||||
#
|
#
|
||||||
@ -882,7 +888,7 @@ while true; do
|
|||||||
doUpdate --safe
|
doUpdate --safe
|
||||||
shift
|
shift
|
||||||
elif [ "$2" == "--warn" ]; then
|
elif [ "$2" == "--warn" ]; then
|
||||||
doWarnUpdate
|
doUpdate --warn
|
||||||
shift
|
shift
|
||||||
else
|
else
|
||||||
doUpdate
|
doUpdate
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user