From b0936f2f1348c69c9ab92e65b9be9b7b775a617f Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Wed, 24 Jun 2015 18:36:05 +1000 Subject: [PATCH 1/3] Parse steamcmd output and extract buildid buildid for public branch is under depots.branches.public.buildid The output from app_info_print is a line-oriented json-like structure which is easily parsed by bash. --- tools/arkmanager | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) 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 } From 0676552a48f3c7bc9429648393173b7053a299e8 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Wed, 24 Jun 2015 13:20:39 +0000 Subject: [PATCH 2/3] Fix typo in init script modification --- tools/install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index d4f008f..b5d97a6 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -30,7 +30,7 @@ if [ ! -z "$1" ]; then elif [ -f /etc/rc.d/init.d/functions ]; then cp redhat/arkdaemon "${INSTALL_ROOT}/etc/rc.d/init.d/arkmanager" chmod +x "${INSTALL_ROOT}/etc/rc.d/init.d/arkmanager" - sed -i "s@^DAEMON=\"/usr/bin@DAEMON=\"${EXECPREFIX}@" "${INSTALL_ROOT}/etc/rc.d/init.d/arkmanager" + sed -i "s@^DAEMON=\"/usr@DAEMON=\"${EXECPREFIX}@" "${INSTALL_ROOT}/etc/rc.d/init.d/arkmanager" if [ -x /sbin/chkconfig -a -z "${INSTALL_ROOT}" ]; then chkconfig --add arkmanager echo "Ark server will now start on boot, if you want to remove this feature run the following line" @@ -39,7 +39,7 @@ if [ ! -z "$1" ]; then elif [ -f /sbin/runscript ]; then cp openrc/arkdaemon "${INSTALL_ROOT}/etc/init.d/arkmanager" chmod +x "${INSTALL_ROOT}/etc/init.d/arkmanager" - sed -i "s@^DAEMON=\"/usr/bin@DAEMON=\"${EXECPREFIX}@" "${INSTALL_ROOT}/etc/init.d/arkmanager" + sed -i "s@^DAEMON=\"/usr@DAEMON=\"${EXECPREFIX}@" "${INSTALL_ROOT}/etc/init.d/arkmanager" if [ -x /sbin/rc-update -a -z "${INSTALL_ROOT}" ]; then rc-update add arkmanager default echo "Ark server will now start on boot, if you want to remove this feature run the following line" From 7e9e1b05ae486cccbd38e7ec5c99f76f2c476cdb Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Wed, 24 Jun 2015 13:24:46 +0000 Subject: [PATCH 3/3] Modify config user to match install user --- tools/install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/install.sh b/tools/install.sh index b5d97a6..a30ec63 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -62,6 +62,7 @@ if [ ! -z "$1" ]; then else cp -n arkmanager.cfg "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg" chown "$1" "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg" + sed -i "s|^steamcmd_user=\"steam\"|steamcmd_user=\"$1\"|;s|\"/home/steam|\"/home/$1|" "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg" fi else