From a8e95f9011bdc96df4b898e9c6ef9c60eb79f685 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Tue, 9 Feb 2016 07:06:05 +1000 Subject: [PATCH] Fix mod updating re-downloading mod Give up on trying to prevent steamcmd from updating every other workshop item it has downloaded. Instead, give it a certain number of retries, and check if the app's workshop downloads directory exists. --- tools/arkmanager | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/tools/arkmanager b/tools/arkmanager index 2fcdd9d..295ea5c 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -1153,10 +1153,9 @@ getModIds(){ doDownloadMod(){ local modid=$1 local modsrcdir="$steamcmdroot/steamapps/workshop/content/$mod_appid/$modid" - local moddldir="$steamcmdroot/steamapps/workshop/downloads/$mod_appid/$modid" - local dlsize=0 + local moddldir="$steamcmdroot/steamapps/workshop/downloads/$mod_appid" cd "$steamcmdroot" - rm "$steamcmdroot/steamapps/workshop/appworkshop_${mod_appid}.acf" 2>/dev/null + retries=10 while true; do echo -n "Downloading mod $modid" @@ -1166,14 +1165,14 @@ doDownloadMod(){ break else echo - echo "Checking mod $modid" - if [ ! -d "$moddldir" ]; then break; fi - local newsize="`du -s "$moddldir/.." | cut -f1`" - if [ $newsize -eq $dlsize ]; then - echo "Mod $modid update not progressing - aborting" - return 1 + if [ ! -d "$moddldir" ]; then + echo "Mod $modid download failed" + break + fi + (( retries = retries - 1 )) + if (( retries <= 0 )); then + echo "Retries exhausted" fi - dlsize=$newsize echo "Mod $modid not fully downloaded - retrying" fi done