diff --git a/netinstall.sh b/netinstall.sh index 8814143..e1a2a40 100644 --- a/netinstall.sh +++ b/netinstall.sh @@ -8,12 +8,32 @@ 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'`" + +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 # Install ARK Server Tools -cd ark-server-tools-${channel}/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 +bash install.sh $1 > /dev/null status=$? diff --git a/tools/arkmanager b/tools/arkmanager index 411db05..0eaef0d 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -42,6 +42,10 @@ 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" +arkstCommit='' + #--------------------- # functions #--------------------- @@ -577,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" @@ -585,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 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