diff --git a/tools/arkmanager b/tools/arkmanager index b3548c5..4fe34f8 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -96,11 +96,35 @@ function getCurrentVersion(){ } +# +# Parse the buildid from steamcmd +# +function parseSteamAppVer(){ + local sname + while read name val; do + name="${name#\"}" + name="${name%\"}" + val="${val#\"}" + val="${val%\"}" + if [ "$name" = "}" ]; then + break + elif [ "$name" == "{" ]; then + parseSteamAppVer "${1}.${sname}" + else + if [ "$1" == ".depots.branches.public" -a "$name" == "buildid" ]; then + echo "$val" + break + fi + sname="${name}" + fi + done +} + # # Get the current available server version on steamdb # function getAvailableVersion(){ - bnumber=`$steamcmdroot/$steamcmdexec +login anonymous +app_info_print "$appid" +quit | grep -EA 5 "^\s+\"public\"$" | grep -E "^\s+\"buildid\"\s+" | tr '[:blank:]"' ' ' | tr -s ' ' | cut -f3 | sed 's/^ //' | cut -c9-14` + bnumber=`$steamcmdroot/$steamcmdexec +login anonymous +app_info_print "$appid" +quit | while read name val; do if [ "${name}" == "{" ]; then parseSteamAppVer; break; fi; done` return $bnumber }