Improve mod update behaviour

This commit is contained in:
Ben Peddell 2016-02-03 20:31:37 +10:00
parent e560db7914
commit 9c35974678

View File

@ -352,6 +352,7 @@ doBroadcastWithEcho(){
# #
function runSteamCMD(){ function runSteamCMD(){
"$steamcmdroot/$steamcmdexec" +@NoPromptForPassword 1 +login ${steamlogin:-anonymous} "$@" +quit "$steamcmdroot/$steamcmdexec" +@NoPromptForPassword 1 +login ${steamlogin:-anonymous} "$@" +quit
return $?
} }
# #
@ -1129,17 +1130,26 @@ doDownloadMod(){
local moddldir="$steamcmdroot/steamapps/workshop/downloads/$mod_appid/$modid" local moddldir="$steamcmdroot/steamapps/workshop/downloads/$mod_appid/$modid"
local dlsize=0 local dlsize=0
cd "$steamcmdroot" cd "$steamcmdroot"
rm "$steamcmdroot/workshop/appworkshop_${mod_appid}.acf" 2>/dev/null
while true; do while true; do
echo "Downloading mod $modid" echo "Downloading mod $modid"
runSteamCMD +workshop_download_item $mod_appid $modid runSteamCMD +workshop_download_item $mod_appid $modid
echo result=$?
echo "Checking mod $modid" if [ $result -eq 0 ]; then
if [ ! -d "$moddldir" ]; then break; fi break
local newsize="`du -s "$moddldir/.." | cut -f1`" else
if [ $newsize -eq $dlsize ]; then break; fi echo
dlsize=$newsize echo "Checking mod $modid"
echo "Mod $modid not fully downloaded - retrying" 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
fi
dlsize=$newsize
echo "Mod $modid not fully downloaded - retrying"
fi
done done
if [ -f "$modsrcdir/mod.info" ]; then if [ -f "$modsrcdir/mod.info" ]; then