From 3e0fa90c70d2f3b75c2182e0ccb899e11f453d56 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Wed, 2 Sep 2015 16:26:32 +1000 Subject: [PATCH 1/6] Move arkstVersion to script --- tools/arkmanager | 3 +++ tools/arkmanager.cfg | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/arkmanager b/tools/arkmanager index 411db05..455175d 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -42,6 +42,9 @@ maxOpenFiles=100000 arkmanagerLog="arkmanager.log" # here are logged the actions performed by arkmanager arkserverLog="arkserver.log" # here is logged the output of ShooterGameServer +# Script version +arkstVersion="1.3" + #--------------------- # functions #--------------------- diff --git a/tools/arkmanager.cfg b/tools/arkmanager.cfg index e671e72..394230a 100644 --- a/tools/arkmanager.cfg +++ b/tools/arkmanager.cfg @@ -1,4 +1,3 @@ -arkstVersion="1.2" # used to print the version when needed and to check for updates arkstChannel="master" # change it to a different branch to get non-stable versions # config SteamCMD From 10a49b7bafc5ed5a37befe44200554682af150c3 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Wed, 2 Sep 2015 16:40:13 +1000 Subject: [PATCH 2/6] Inject git commit into arkmanager script --- netinstall.sh | 8 ++++++-- tools/arkmanager | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/netinstall.sh b/netinstall.sh index 8814143..9cd9bd7 100644 --- a/netinstall.sh +++ b/netinstall.sh @@ -8,10 +8,14 @@ channel=${2:-master} # if defined by 2nd argument install the defined version, o # Download and untar installation files cd /tmp -curl -L -k -s https://github.com/FezVrasta/ark-server-tools/archive/${channel}.tar.gz | tar xz +COMMIT="`curl -L -k -s https://api.github.com/repos/FezVrasta/ark-server-tools/git/refs/heads/${channel} | sed -n 's/^ *"sha": "\(.*\)",.*/\1/p'`" +mkdir ark-server-tools-${channel} +cd ark-server-tools-${channel} +curl -L -k -s https://github.com/FezVrasta/ark-server-tools/archive/${COMMIT}.tar.gz | tar xz # Install ARK Server Tools -cd ark-server-tools-${channel}/tools +cd ark-server-tools-${COMMIT}/tools +sed -i "s|^arkstCommit='.*'$|arkstCommit='${COMMIT}'|" arkmanager chmod +x install.sh sh install.sh $1 > /dev/null diff --git a/tools/arkmanager b/tools/arkmanager index 455175d..53e8d76 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -44,6 +44,7 @@ arkserverLog="arkserver.log" # here is logged the output of ShooterGameServer # Script version arkstVersion="1.3" +arkstCommit='' #--------------------- # functions From 74b665cdfd0b692e4f9bf4c8606a02bf6cee5825 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Wed, 2 Sep 2015 16:46:17 +1000 Subject: [PATCH 3/6] Add hotfix update support --- tools/arkmanager | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tools/arkmanager b/tools/arkmanager index 53e8d76..0eaef0d 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -581,6 +581,7 @@ doUpgrade() { fi echo "arkmanager v${arkstVersion}: Checking for updates..." arkstLatestVersion=`curl -s https://raw.githubusercontent.com/FezVrasta/ark-server-tools/${arkstChannel}/.version` + arkstLatestCommit=`curl -s https://api.github.com/repos/FezVrasta/ark-server-tools/git/refs/heads/${arkstChannel} | sed -n 's/^ *"sha": "\(.*\)",.*/\1/p'` if [[ $arkstLatestVersion > $arkstVersion ]]; then read -p "A new version was found! Do you want to upgrade ARK Server Tools to v${arkstLatestVersion}?" -n 1 -r echo -en "\n" @@ -589,6 +590,14 @@ doUpgrade() { else exit 0 fi + elif [[ "$arkstLatestCommit" != "$arkstCommit" ]]; then + read -p "A hotfix is available for v${arkstLatestVersion}. Do you wish to install it?" -n 1 -r + echo -en "\n" + if [[ $REPLY =~ ^[Yy]$ ]]; then + curl -s https://raw.githubusercontent.com/FezVrasta/ark-server-tools/${arkstChannel}/netinstall.sh | $sudo bash -s ${steamcmd_user} ${arkstChannel} + else + exit 0 + fi else echo "Your ARK server tools are already up to date" fi From 34a3ec894380cc05def2f7833faa380d30299b2b Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Wed, 2 Sep 2015 17:05:34 +1000 Subject: [PATCH 4/6] Try master branch if selected channel is not found --- netinstall.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/netinstall.sh b/netinstall.sh index 9cd9bd7..8bf1c8b 100644 --- a/netinstall.sh +++ b/netinstall.sh @@ -9,6 +9,20 @@ channel=${2:-master} # if defined by 2nd argument install the defined version, o # Download and untar installation files cd /tmp COMMIT="`curl -L -k -s https://api.github.com/repos/FezVrasta/ark-server-tools/git/refs/heads/${channel} | sed -n 's/^ *"sha": "\(.*\)",.*/\1/p'`" + +if [ -z "$COMMIT" ]; then + if [ "$channel" != "master" ]; then + echo "Channel ${channel} not found - trying master" + channel=master + COMMIT="`curl -L -k -s https://api.github.com/repos/FezVrasta/ark-server-tools/git/refs/heads/${channel} | sed -n 's/^ *"sha": "\(.*\)",.*/\1/p'`" + fi +fi + +if [ -z "$COMMIT" ]; then + echo "Unable to retrieve latest commit" + exit 1 +fi + mkdir ark-server-tools-${channel} cd ark-server-tools-${channel} curl -L -k -s https://github.com/FezVrasta/ark-server-tools/archive/${COMMIT}.tar.gz | tar xz From 6ce184797a46463a233d7aa4541daa3daaddad90 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Wed, 2 Sep 2015 17:13:42 +1000 Subject: [PATCH 5/6] Inject version from .version into arkmanager script --- netinstall.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/netinstall.sh b/netinstall.sh index 8bf1c8b..2e9eae5 100644 --- a/netinstall.sh +++ b/netinstall.sh @@ -30,6 +30,8 @@ curl -L -k -s https://github.com/FezVrasta/ark-server-tools/archive/${COMMIT}.ta # Install ARK Server Tools cd ark-server-tools-${COMMIT}/tools sed -i "s|^arkstCommit='.*'$|arkstCommit='${COMMIT}'|" arkmanager +version=`<../.version` +sed -i "s|^arkstVersion=\".*\"|arkstVersion='${version}'|" arkmanager chmod +x install.sh sh install.sh $1 > /dev/null From 8a7f6d24bc2e4ac6dd6ddbc6aa97512e15e39450 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Wed, 2 Sep 2015 17:35:43 +1000 Subject: [PATCH 6/6] Run install script using bash --- netinstall.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netinstall.sh b/netinstall.sh index 2e9eae5..e1a2a40 100644 --- a/netinstall.sh +++ b/netinstall.sh @@ -33,7 +33,7 @@ sed -i "s|^arkstCommit='.*'$|arkstCommit='${COMMIT}'|" arkmanager version=`<../.version` sed -i "s|^arkstVersion=\".*\"|arkstVersion='${version}'|" arkmanager chmod +x install.sh -sh install.sh $1 > /dev/null +bash install.sh $1 > /dev/null status=$?