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.
This commit is contained in:
Ben Peddell 2016-02-09 07:06:05 +10:00
parent c1927e4feb
commit a8e95f9011

View File

@ -1153,10 +1153,9 @@ getModIds(){
doDownloadMod(){ doDownloadMod(){
local modid=$1 local modid=$1
local modsrcdir="$steamcmdroot/steamapps/workshop/content/$mod_appid/$modid" local modsrcdir="$steamcmdroot/steamapps/workshop/content/$mod_appid/$modid"
local moddldir="$steamcmdroot/steamapps/workshop/downloads/$mod_appid/$modid" local moddldir="$steamcmdroot/steamapps/workshop/downloads/$mod_appid"
local dlsize=0
cd "$steamcmdroot" cd "$steamcmdroot"
rm "$steamcmdroot/steamapps/workshop/appworkshop_${mod_appid}.acf" 2>/dev/null retries=10
while true; do while true; do
echo -n "Downloading mod $modid" echo -n "Downloading mod $modid"
@ -1166,14 +1165,14 @@ doDownloadMod(){
break break
else else
echo echo
echo "Checking mod $modid" if [ ! -d "$moddldir" ]; then
if [ ! -d "$moddldir" ]; then break; fi echo "Mod $modid download failed"
local newsize="`du -s "$moddldir/.." | cut -f1`" break
if [ $newsize -eq $dlsize ]; then fi
echo "Mod $modid update not progressing - aborting" (( retries = retries - 1 ))
return 1 if (( retries <= 0 )); then
echo "Retries exhausted"
fi fi
dlsize=$newsize
echo "Mod $modid not fully downloaded - retrying" echo "Mod $modid not fully downloaded - retrying"
fi fi
done done