diff --git a/tools/arkmanager b/tools/arkmanager index 2db9e71..5c2710a 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -449,10 +449,13 @@ doInstall() { # doUpdate() { local appupdate= + local updatetype=normal for arg in "$@"; do if [ "$arg" == "--force" ]; then appupdate=1 + elif [ "$arg" == "--safe" ]; then + updatetype=safe fi done @@ -463,6 +466,16 @@ doUpdate() { fi if [ -n "$appupdate" ]; then + if isTheServerRunning; then + if [ "$updatetype" == "safe" ]; then + while [ ! `find $arkserverroot/ShooterGame/Saved/SavedArks -mmin -1 -name ${serverMap##*/}.ark` ]; do + echo "`timestamp`: Save file older than 1 minute. Delaying update." >> "$logdir/update.log" + sleep 30s + done + echo "`timestamp`: Save file newer than 1 minute. Performing an update." >> "$logdir/update.log" + fi + fi + forceUpdate else echo "Your server is already up to date! The most recent version is ${bnumber}." @@ -489,25 +502,6 @@ forceUpdate(){ fi } -# -# Waits for server to perform save before update (until save file is newer than 1 minute) -# -doSafeUpdate(){ - cd "$arkserverroot" - - if isUpdateNeeded; then - while [ ! `find $arkserverroot/ShooterGame/Saved/SavedArks -mmin -1 -name ${serverMap##*/}.ark` ]; do - echo "`timestamp`: Save file older than 1 minute. Delaying update." >> "$logdir/update.log" - sleep 30s - done - echo "`timestamp`: Save file newer than 1 minute. Performing an update." >> "$logdir/update.log" - forceUpdate - else - echo "Your server is already up to date! The most recent version is ${bnumber}." - echo "`timestamp`: No update needed." >> "$logdir/update.log" - fi -} - # # Downloads mod and installs it into mods directory # @@ -885,7 +879,7 @@ while true; do doUpdate --force shift elif [ "$2" == "--safe" ]; then - doSafeUpdate + doUpdate --safe shift elif [ "$2" == "--warn" ]; then doWarnUpdate