diff --git a/tools/arkmanager b/tools/arkmanager index 578ff05..38de77b 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -237,6 +237,7 @@ appid="${appid:-376030}" mod_appid="${mod_appid:-346110}" install_bindir="${install_bindir:-${0%/*}}" install_libexecdir="${install_libexecdir:-${install_bindir%/*}/libexec/arkmanager}" +steamcmd_workshoplog="${steamcmd_workshoplog:-${HOME}/Steam/logs/workshop_log.txt}" if [ "$steamcmd_user" == "--me" ]; then install_datadir="${install_datadir:-${HOME}/.share/local/arkmanager}" @@ -1787,7 +1788,11 @@ doDownloadMod(){ break else echo - if [ ! -d "$moddldir" ]; then + failedmod="$(sed -n 's|.* Download item \([0-9]*\) result : \(.*\)|\1\t\2|p' "${steamcmd_workshoplog}" | grep -v ' OK' | tail -n1 | cut -f1)" + if [[ -n "$failedmod" && "$failedmod" != "$modid" ]]; then + echo "Mod $failedmod prevented mod update - removing failed mod" + doRemoveMods "$failedmod" + elif [ ! -d "$moddldir" ]; then echo "Mod $modid download failed" break fi diff --git a/tools/arkmanager.cfg b/tools/arkmanager.cfg index 750f866..34391a0 100644 --- a/tools/arkmanager.cfg +++ b/tools/arkmanager.cfg @@ -8,6 +8,7 @@ steamcmdroot="/home/steam/steamcmd" # path of yo steamcmdexec="steamcmd.sh" # name of steamcmd executable steamcmd_user="steam" # name of the system user who own steamcmd folder steamcmd_appinfocache="/home/steam/Steam/appcache/appinfo.vdf" # cache of the appinfo command +steamcmd_workshoplog="/home/steam/Steam/logs/workshop_log.txt" # Steam workshop log #steamlogin="anonymous" # Uncomment this to specify steam login instead of using anonymous login # config environment