From 71e1fad790e34a00d6fbf6ee6e47431cb8d76cbc Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Mon, 14 Sep 2015 16:09:45 +1000 Subject: [PATCH 01/14] Fix issues with user-install * Ignore the steamcmd_user when validating the environment * Add a -- separator when installing, so that --me is interpreted as an argument to the script rather than an argument to bash --- tools/arkmanager | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tools/arkmanager b/tools/arkmanager index b82f720..1119d7e 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -71,8 +71,10 @@ checkConfig() { echo -e "[" "$RED" "ERROR" "$NORMAL" "]" "\tYour SteamCMD exec could not be found." fi # steamcmd_user - if ! getent passwd $steamcmd_user > /dev/null 2>&1 ; then - echo -e "[" "$RED" "ERROR" "$NORMAL" "]" "\tYour SteamCMD user is not valid." + if [ "$steamcmd_user" != "--me" ]; then + if ! getent passwd $steamcmd_user > /dev/null 2>&1 ; then + echo -e "[" "$RED" "ERROR" "$NORMAL" "]" "\tYour SteamCMD user is not valid." + fi fi # Environment configuration @@ -639,7 +641,7 @@ doUpgrade() { read -p "A new version was found! Do you want to upgrade ARK Server Tools to v${arkstLatestVersion}?" -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} + curl -s https://raw.githubusercontent.com/FezVrasta/ark-server-tools/${arkstChannel}/netinstall.sh | $sudo bash -s -- ${steamcmd_user} ${arkstChannel} else exit 0 fi @@ -647,7 +649,7 @@ doUpgrade() { 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} + curl -s https://raw.githubusercontent.com/FezVrasta/ark-server-tools/${arkstChannel}/netinstall.sh | $sudo bash -s -- ${steamcmd_user} ${arkstChannel} else exit 0 fi From 8568498a174cd487eed1278259457d5dac56363a Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Fri, 18 Sep 2015 12:24:10 +1000 Subject: [PATCH 02/14] Fix issue with user-install in install.sh Install script was putting "me" instead of "--me" into config file --- tools/install.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index 0ccc309..7084eab 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -20,16 +20,16 @@ if [ ! -z "$1" ]; then # Copy arkmanager.cfg to ~/.arkmanager.cfg if it doesn't already exist if [ -f "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg" ]; then cp -n arkmanager.cfg "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg.NEW" - sed -i "s|^steamcmd_user=\"steam\"|steamcmd_user=\"me\"|;s|\"/home/steam|\"${PREFIX}|;s|/var/log/arktools|${PREFIX}/logs/arktools|" "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg.NEW" + sed -i "s|^steamcmd_user=\"steam\"|steamcmd_user=\"--me\"|;s|\"/home/steam|\"${PREFIX}|;s|/var/log/arktools|${PREFIX}/logs/arktools|" "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg.NEW" echo "A previous version of ARK Server Tools was detected in your system, your old configuration was not overwritten. You may need to manually update it." echo "A copy of the new configuration file was included in '${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg.NEW'. Make sure to review any changes and update your config accordingly!" exit 2 else cp -n arkmanager.cfg "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg" - sed -i "s|^steamcmd_user=\"steam\"|steamcmd_user=\"me\"|;s|\"/home/steam|\"${PREFIX}|;s|/var/log/arktools|${PREFIX}/logs/arktools|" "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg" + sed -i "s|^steamcmd_user=\"steam\"|steamcmd_user=\"--me\"|;s|\"/home/steam|\"${PREFIX}|;s|/var/log/arktools|${PREFIX}/logs/arktools|" "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg" fi - elif [ "$1" == "me" ]; then - echo "You specified the special 'me' user while running as root. This is not permitted." + elif [ "$1" == "--me" ]; then + echo "You specified the special '--me' user while running as root. This is not permitted." exit 1 else # Copy arkmanager to /usr/bin and set permissions From 37014ec86d815ef05d145b4bd26af5be2085e340 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Fri, 18 Sep 2015 19:06:15 +1000 Subject: [PATCH 03/14] Implement better argument handling in install.sh --- tools/install.sh | 81 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 62 insertions(+), 19 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index 7084eab..07efeac 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -1,14 +1,72 @@ #!/bin/bash -if [ "$1" == "--me" ]; then +userinstall=no +steamcmd_user= +showusage=no + +while [ -n "$1" ]; do + case "$1" in + --me) + userinstall=yes + steamcmd_user="--me" + ;; + -h|--help) + showusage=yes + break + ;; + -*) + echo "Invalid option '$1'" + showusage=yes + break; + ;; + *) + if [ -n "$steamcmd_user" ]; then + echo "Multiple users specified" + showusage=yes + break; + elif getent passwd "$1" >/dev/null 2>&1; then + steamcmd_user="$1" + else + echo "Invalid user '$1'" + showusage=yes + break; + fi + ;; + esac + shift +done + +if [ "$userinstall" == "yes" -a "$UID" -eq 0 ]; then + echo "Refusing to perform user-install as root" + showusage=yes +fi + +if [ "$showusage" == "no" -a -z "$steamcmd_user" ]; then + echo "No user specified" + showusage=yes +fi + +if [ "$userinstall" == "yes" ]; then PREFIX="${PREFIX:-${HOME}}" EXECPREFIX="${EXECPREFIX:-${PREFIX}}" else EXECPREFIX="${EXECPREFIX:-/usr/local}" fi -if [ ! -z "$1" ]; then - if [ "$1" == "--me" -a "$UID" -ne 0 ]; then +if [ "$showusage" == "yes" ]; then + echo "You must specify your system steam user who own steamcmd directory to install ARK Tools." + echo "Specify the special used '--me' to perform a user-install." + echo "Usage: ./install.sh steam" + echo + echo "Environment variables affecting install:" + echo "EXECPREFIX: prefix in which to install arkmanager executable" + echo " [${EXECPREFIX}]" + echo "INSTALL_ROOT: staging directory in which to perform install" + echo " [${INSTALL_ROOT}]" + exit 1 +fi + +if [ "$userinstall" == "yes" ]; then # Copy arkmanager to ~/bin mkdir -p "${INSTALL_ROOT}${EXECPREFIX}/bin" cp arkmanager "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager" @@ -28,10 +86,7 @@ if [ ! -z "$1" ]; then cp -n arkmanager.cfg "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg" sed -i "s|^steamcmd_user=\"steam\"|steamcmd_user=\"--me\"|;s|\"/home/steam|\"${PREFIX}|;s|/var/log/arktools|${PREFIX}/logs/arktools|" "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg" fi - elif [ "$1" == "--me" ]; then - echo "You specified the special '--me' user while running as root. This is not permitted." - exit 1 - else +else # Copy arkmanager to /usr/bin and set permissions cp arkmanager "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager" chmod +x "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager" @@ -128,18 +183,6 @@ if [ ! -z "$1" ]; then 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 - fi -else - echo "You must specify your system steam user who own steamcmd directory to install ARK Tools." - echo "Specify the special used '--me' to perform a user-install." - echo "Usage: ./install.sh steam" - echo - echo "Environment variables affecting install:" - echo "EXECPREFIX: prefix in which to install arkmanager executable" - echo " [${EXECPREFIX}]" - echo "INSTALL_ROOT: staging directory in which to perform install" - echo " [${INSTALL_ROOT}]" - exit 1 fi exit 0 From 563c34b3f2b348761605dc806a18f94466f1c513 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Fri, 18 Sep 2015 19:10:23 +1000 Subject: [PATCH 04/14] Add prefix, exec-prefix and install-root arguments --- tools/install.sh | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tools/install.sh b/tools/install.sh index 07efeac..d0adf11 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -14,6 +14,27 @@ while [ -n "$1" ]; do showusage=yes break ;; + --prefix=*) + PREFIX="${1#--prefix=}" + ;; + --prefix) + PREFIX="$2" + shift + ;; + --exec-prefix=*) + EXECPREFIX="${1#--exec-prefix=}" + ;; + --exec-prefix) + EXECPREFIX="$2" + shift + ;; + --install-root=*) + INSTALL_ROOT="${1#--install-root=}" + ;; + --install-root) + INSTALL_ROOT="$2" + shift + ;; -*) echo "Invalid option '$1'" showusage=yes From f597644d595fffe0c34b00ab85e2278abf9ff311 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Fri, 18 Sep 2015 19:12:20 +1000 Subject: [PATCH 05/14] Improve install.sh usage message --- tools/install.sh | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index d0adf11..1fb4378 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -75,15 +75,21 @@ else fi if [ "$showusage" == "yes" ]; then + echo "Usage: ./install.sh {|--me} [OPTIONS]" echo "You must specify your system steam user who own steamcmd directory to install ARK Tools." echo "Specify the special used '--me' to perform a user-install." - echo "Usage: ./install.sh steam" echo - echo "Environment variables affecting install:" - echo "EXECPREFIX: prefix in which to install arkmanager executable" - echo " [${EXECPREFIX}]" - echo "INSTALL_ROOT: staging directory in which to perform install" - echo " [${INSTALL_ROOT}]" + echo " The user arkmanager should be run as" + echo + echo "Option Description" + echo "--help, -h Show this help text" + echo "--me Perform a user-install" + echo "--prefix Specify the prefix under which to install arkmanager" + echo " [PREFIX=${PREFIX}]" + echo "--exec-prefix Specify the prefix under which to install executables" + echo " [EXECPREFIX=${EXECPREFIX}]" + echo "--install-root Specify the staging directory in which to perform the install" + echo " [INSTALL_ROOT=${INSTALL_ROOT}]" exit 1 fi From b86967c30c2b6dd336ce2a53c6e6f17d08cf88e1 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Fri, 18 Sep 2015 19:16:09 +1000 Subject: [PATCH 06/14] Add bindir argument to install.sh --- tools/install.sh | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index 1fb4378..3352de1 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -35,6 +35,13 @@ while [ -n "$1" ]; do INSTALL_ROOT="$2" shift ;; + --bindir=*) + BINDIR="${1#--bindir=}" + ;; + --bindir) + BINDIR="$2" + shift + ;; -*) echo "Invalid option '$1'" showusage=yes @@ -74,6 +81,8 @@ else EXECPREFIX="${EXECPREFIX:-/usr/local}" fi +BINDIR="${BINDIR:-${EXECPREFIX}/bin}" + if [ "$showusage" == "yes" ]; then echo "Usage: ./install.sh {|--me} [OPTIONS]" echo "You must specify your system steam user who own steamcmd directory to install ARK Tools." @@ -90,14 +99,16 @@ if [ "$showusage" == "yes" ]; then echo " [EXECPREFIX=${EXECPREFIX}]" echo "--install-root Specify the staging directory in which to perform the install" echo " [INSTALL_ROOT=${INSTALL_ROOT}]" + echo "--bindir Specify the directory under which to install executables" + echo " [BINDIR=${BINDIR}]" exit 1 fi if [ "$userinstall" == "yes" ]; then # Copy arkmanager to ~/bin - mkdir -p "${INSTALL_ROOT}${EXECPREFIX}/bin" - cp arkmanager "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager" - chmod +x "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager" + mkdir -p "${INSTALL_ROOT}${BINDIR}" + cp arkmanager "${INSTALL_ROOT}${BINDIR}/arkmanager" + chmod +x "${INSTALL_ROOT}${BINDIR}/arkmanager" # Create a folder in ~/logs to let Ark tools write its own log files mkdir -p "${INSTALL_ROOT}${PREFIX}/logs/arktools" @@ -115,8 +126,8 @@ if [ "$userinstall" == "yes" ]; then fi else # Copy arkmanager to /usr/bin and set permissions - cp arkmanager "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager" - chmod +x "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager" + cp arkmanager "${INSTALL_ROOT}${BINDIR}/arkmanager" + chmod +x "${INSTALL_ROOT}${BINDIR}/arkmanager" # Copy arkdaemon to /etc/init.d ,set permissions and add it to boot if [ -f /lib/lsb/init-functions ]; then @@ -127,7 +138,7 @@ else chmod +x "${INSTALL_ROOT}${EXECPREFIX}/libexec/arkmanager/arkmanager.init" cp systemd/arkdeamon.service "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service" sed -i "s|=/usr/|=${EXECPREFIX}/|" "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service" - sed -i "s@^DAEMON=\"/usr@DAEMON=\"${EXECPREFIX}@" "${INSTALL_ROOT}${EXECPREFIX}/libexec/arkmanager/arkmanager.init" + sed -i "s@^DAEMON=\"/usr/bin/@DAEMON=\"${BINDIR}/@" "${INSTALL_ROOT}${EXECPREFIX}/libexec/arkmanager/arkmanager.init" if [ -z "${INSTALL_ROOT}" ]; then systemctl daemon-reload systemctl enable arkmanager.service @@ -137,7 +148,7 @@ else else # systemd not present, so use sysvinit cp lsb/arkdaemon "${INSTALL_ROOT}/etc/init.d/arkmanager" chmod +x "${INSTALL_ROOT}/etc/init.d/arkmanager" - sed -i "s|^DAEMON=\"/usr|DAEMON=\"${EXECPREFIX}|" "${INSTALL_ROOT}/etc/init.d/arkmanager" + sed -i "s|^DAEMON=\"/usr/bin/|DAEMON=\"${BINDIR}/|" "${INSTALL_ROOT}/etc/init.d/arkmanager" # add to startup if the system use sysinit if [ -x /usr/sbin/update-rc.d -a -z "${INSTALL_ROOT}" ]; then update-rc.d arkmanager defaults @@ -153,7 +164,7 @@ else chmod +x "${INSTALL_ROOT}${EXECPREFIX}/libexec/arkmanager/arkmanager.init" cp systemd/arkdeamon.service "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service" sed -i "s|=/usr/|=${EXECPREFIX}/|" "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service" - sed -i "s@^DAEMON=\"/usr@DAEMON=\"${EXECPREFIX}@" "${INSTALL_ROOT}${EXECPREFIX}/libexec/arkmanager/arkmanager.init" + sed -i "s@^DAEMON=\"/usr/bin/@DAEMON=\"${BINDIR}/@" "${INSTALL_ROOT}${EXECPREFIX}/libexec/arkmanager/arkmanager.init" if [ -z "${INSTALL_ROOT}" ]; then systemctl daemon-reload systemctl enable arkmanager.service @@ -163,7 +174,7 @@ else else # systemd not preset, so use sysvinit 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@DAEMON=\"${EXECPREFIX}@" "${INSTALL_ROOT}/etc/rc.d/init.d/arkmanager" + sed -i "s@^DAEMON=\"/usr/bin/@DAEMON=\"${BINDIR}/@" "${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" @@ -173,7 +184,7 @@ else 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@DAEMON=\"${EXECPREFIX}@" "${INSTALL_ROOT}/etc/init.d/arkmanager" + sed -i "s@^DAEMON=\"/usr/bin/@DAEMON=\"${BINDIR}/@" "${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" @@ -185,7 +196,7 @@ else chmod +x "${INSTALL_ROOT}${EXECPREFIX}/libexec/arkmanager/arkmanager.init" cp systemd/arkdeamon.service "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service" sed -i "s|=/usr/|=${EXECPREFIX}/|" "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service" - sed -i "s@^DAEMON=\"/usr@DAEMON=\"${EXECPREFIX}@" "${INSTALL_ROOT}${EXECPREFIX}/libexec/arkmanager/arkmanager.init" + sed -i "s@^DAEMON=\"/usr/bin/@DAEMON=\"${BINDIR}/@" "${INSTALL_ROOT}${EXECPREFIX}/libexec/arkmanager/arkmanager.init" if [ -z "${INSTALL_ROOT}" ]; then systemctl enable arkmanager.service echo "Ark server will now start on boot, if you want to remove this feature run the following line" From 3977190e7a5762582c33075591583b37f52b09bc Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Fri, 18 Sep 2015 19:17:49 +1000 Subject: [PATCH 07/14] Use PREFIX for global install --- tools/install.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/install.sh b/tools/install.sh index 3352de1..1caffaf 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -78,7 +78,8 @@ if [ "$userinstall" == "yes" ]; then PREFIX="${PREFIX:-${HOME}}" EXECPREFIX="${EXECPREFIX:-${PREFIX}}" else - EXECPREFIX="${EXECPREFIX:-/usr/local}" + PREFIX="${PREFIX:-/usr/local}" + EXECPREFIX="${EXECPREFIX:-${PREFIX}}" fi BINDIR="${BINDIR:-${EXECPREFIX}/bin}" From bfca58c39d25520b82e3d37f1fa585c3f7554b3c Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Fri, 18 Sep 2015 19:22:38 +1000 Subject: [PATCH 08/14] Add libexecdir argument to install.sh --- tools/install.sh | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index 1caffaf..223d789 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -42,6 +42,13 @@ while [ -n "$1" ]; do BINDIR="$2" shift ;; + --libexecdir=*) + LIBEXECDIR="${1#--libexecdir=}" + ;; + --libexecdir) + LIBEXECDIR="$2" + shift + ;; -*) echo "Invalid option '$1'" showusage=yes @@ -83,6 +90,7 @@ else fi BINDIR="${BINDIR:-${EXECPREFIX}/bin}" +LIBEXECDIR="${LIBEXECDIR:-${EXECPREFIX}/libexec/arkmanager}" if [ "$showusage" == "yes" ]; then echo "Usage: ./install.sh {|--me} [OPTIONS]" @@ -102,6 +110,7 @@ if [ "$showusage" == "yes" ]; then echo " [INSTALL_ROOT=${INSTALL_ROOT}]" echo "--bindir Specify the directory under which to install executables" echo " [BINDIR=${BINDIR}]" + echo "--libexecdir Specify the directory under which to install executable support files" exit 1 fi @@ -134,12 +143,12 @@ else if [ -f /lib/lsb/init-functions ]; then # on debian 8, sysvinit and systemd are present. If systemd is available we use it instead of sysvinit if [ -f /etc/systemd/system.conf ]; then # used by systemd - mkdir -p "${INSTALL_ROOT}${EXECPREFIX}/libexec/arkmanager" - cp lsb/arkdaemon "${INSTALL_ROOT}${EXECPREFIX}/libexec/arkmanager/arkmanager.init" - chmod +x "${INSTALL_ROOT}${EXECPREFIX}/libexec/arkmanager/arkmanager.init" + mkdir -p "${INSTALL_ROOT}${LIBEXECDIRPREFIX}" + cp lsb/arkdaemon "${INSTALL_ROOT}${LIBEXECDIR}/arkmanager.init" + chmod +x "${INSTALL_ROOT}${LIBEXECDIR}/arkmanager.init" cp systemd/arkdeamon.service "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service" - sed -i "s|=/usr/|=${EXECPREFIX}/|" "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service" - sed -i "s@^DAEMON=\"/usr/bin/@DAEMON=\"${BINDIR}/@" "${INSTALL_ROOT}${EXECPREFIX}/libexec/arkmanager/arkmanager.init" + sed -i "s|=/usr/libexec/arkmanager/|=${LIBEXECDIR}/|" "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service" + sed -i "s@^DAEMON=\"/usr/bin/@DAEMON=\"${BINDIR}/@" "${INSTALL_ROOT}${LIBEXECDIR}/arkmanager.init" if [ -z "${INSTALL_ROOT}" ]; then systemctl daemon-reload systemctl enable arkmanager.service @@ -160,12 +169,12 @@ else elif [ -f /etc/rc.d/init.d/functions ]; then # on RHEL 7, sysvinit and systemd are present. If systemd is available we use it instead of sysvinit if [ -f /etc/systemd/system.conf ]; then # used by systemd - mkdir -p "${INSTALL_ROOT}${EXECPREFIX}/libexec/arkmanager" - cp redhat/arkdaemon "${INSTALL_ROOT}${EXECPREFIX}/libexec/arkmanager/arkmanager.init" - chmod +x "${INSTALL_ROOT}${EXECPREFIX}/libexec/arkmanager/arkmanager.init" + mkdir -p "${INSTALL_ROOT}${LIBEXECDIR}" + cp redhat/arkdaemon "${INSTALL_ROOT}${LIBEXECDIR}/arkmanager.init" + chmod +x "${INSTALL_ROOT}${LIBEXECDIR}/arkmanager.init" cp systemd/arkdeamon.service "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service" - sed -i "s|=/usr/|=${EXECPREFIX}/|" "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service" - sed -i "s@^DAEMON=\"/usr/bin/@DAEMON=\"${BINDIR}/@" "${INSTALL_ROOT}${EXECPREFIX}/libexec/arkmanager/arkmanager.init" + sed -i "s|=/usr/libexec/arkmanager/|=${LIBEXECDIR}/|" "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service" + sed -i "s@^DAEMON=\"/usr/bin/@DAEMON=\"${BINDIR}/@" "${INSTALL_ROOT}${LIBEXECDIR}/arkmanager.init" if [ -z "${INSTALL_ROOT}" ]; then systemctl daemon-reload systemctl enable arkmanager.service @@ -192,12 +201,12 @@ else echo "rc-update del arkmanager default" fi elif [ -f /etc/systemd/system.conf ]; then # used by systemd - mkdir -p "${INSTALL_ROOT}${EXECPREFIX}/libexec/arkmanager" - cp systemd/arkdaemon.init "${INSTALL_ROOT}${EXECPREFIX}/libexec/arkmanager/arkmanager.init" - chmod +x "${INSTALL_ROOT}${EXECPREFIX}/libexec/arkmanager/arkmanager.init" + mkdir -p "${INSTALL_ROOT}${LIBEXECDIR}" + cp systemd/arkdaemon.init "${INSTALL_ROOT}${LIBEXECDIR}/arkmanager.init" + chmod +x "${INSTALL_ROOT}${LIBEXECDIR}/arkmanager.init" cp systemd/arkdeamon.service "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service" - sed -i "s|=/usr/|=${EXECPREFIX}/|" "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service" - sed -i "s@^DAEMON=\"/usr/bin/@DAEMON=\"${BINDIR}/@" "${INSTALL_ROOT}${EXECPREFIX}/libexec/arkmanager/arkmanager.init" + sed -i "s|=/usr/libexec/arkmanager/|=${LIBEXECDIR}/|" "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service" + sed -i "s@^DAEMON=\"/usr/bin/@DAEMON=\"${BINDIR}/@" "${INSTALL_ROOT}${LIBEXECDIR}/arkmanager.init" if [ -z "${INSTALL_ROOT}" ]; then systemctl enable arkmanager.service echo "Ark server will now start on boot, if you want to remove this feature run the following line" From d40d9d9df3d93dac5dedec5d7b0fc4b599ff0545 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Fri, 18 Sep 2015 19:25:30 +1000 Subject: [PATCH 09/14] Always write arkmanager.cfg.NEW --- tools/install.sh | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index 223d789..753297e 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -123,16 +123,21 @@ if [ "$userinstall" == "yes" ]; then # Create a folder in ~/logs to let Ark tools write its own log files mkdir -p "${INSTALL_ROOT}${PREFIX}/logs/arktools" + # Copy arkmanager.cfg to ~/.arkmanager.cfg.NEW + cp arkmanager.cfg "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg.NEW" + # Change the defaults in the new config file + sed -i -e "s|^steamcmd_user=\"steam\"|steamcmd_user=\"--me\"|" \ + -e "s|\"/home/steam|\"${PREFIX}|" \ + -e "s|/var/log/arktools|${PREFIX}/logs/arktools|" \ + "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg.NEW" + # Copy arkmanager.cfg to ~/.arkmanager.cfg if it doesn't already exist if [ -f "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg" ]; then - cp -n arkmanager.cfg "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg.NEW" - sed -i "s|^steamcmd_user=\"steam\"|steamcmd_user=\"--me\"|;s|\"/home/steam|\"${PREFIX}|;s|/var/log/arktools|${PREFIX}/logs/arktools|" "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg.NEW" echo "A previous version of ARK Server Tools was detected in your system, your old configuration was not overwritten. You may need to manually update it." echo "A copy of the new configuration file was included in '${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg.NEW'. Make sure to review any changes and update your config accordingly!" exit 2 else - cp -n arkmanager.cfg "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg" - sed -i "s|^steamcmd_user=\"steam\"|steamcmd_user=\"--me\"|;s|\"/home/steam|\"${PREFIX}|;s|/var/log/arktools|${PREFIX}/logs/arktools|" "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg" + mv -n "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg.NEW" "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg" fi else # Copy arkmanager to /usr/bin and set permissions @@ -220,16 +225,18 @@ else # Copy arkmanager.cfg inside linux configuation folder if it doesn't already exists mkdir -p "${INSTALL_ROOT}/etc/arkmanager" + cp arkmanager.cfg "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg.NEW" + chown "$1" "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg.NEW" + sed -i -e "s|^steamcmd_user=\"steam\"|steamcmd_user=\"$1\"|" \ + -e "s|\"/home/steam|\"/home/$1|" \ + "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg" + if [ -f "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg" ]; then - cp -n arkmanager.cfg "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg.NEW" - chown "$1" "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg.NEW" echo "A previous version of ARK Server Tools was detected in your system, your old configuration was not overwritten. You may need to manually update it." echo "A copy of the new configuration file was included in /etc/arkmanager. Make sure to review any changes and update your config accordingly!" exit 2 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" + mv -n "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg.NEW" "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg" fi fi From 283c04dd819cced42fed9b6f08297540eb02bbf9 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Fri, 18 Sep 2015 19:29:28 +1000 Subject: [PATCH 10/14] Add install_bindir and install_libexecdir to config --- netinstall.sh | 4 +++- tools/arkmanager | 13 +++++++++++-- tools/arkmanager.cfg | 2 ++ tools/install.sh | 4 ++++ 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/netinstall.sh b/netinstall.sh index e1a2a40..37eb54e 100644 --- a/netinstall.sh +++ b/netinstall.sh @@ -4,7 +4,9 @@ # Net Installer, used with curl # +steamcmd_user="$1" channel=${2:-master} # if defined by 2nd argument install the defined version, otherwise install master +shift 2 # Download and untar installation files cd /tmp @@ -33,7 +35,7 @@ sed -i "s|^arkstCommit='.*'$|arkstCommit='${COMMIT}'|" arkmanager version=`<../.version` sed -i "s|^arkstVersion=\".*\"|arkstVersion='${version}'|" arkmanager chmod +x install.sh -bash install.sh $1 > /dev/null +bash install.sh "$steamcmd_user" "$@" > /dev/null status=$? diff --git a/tools/arkmanager b/tools/arkmanager index 5aadc11..164e0b1 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -45,6 +45,8 @@ arkserverLog="arkserver.log" # here is logged the output of ShooterGameServer appid="${appid:-376030}" mod_appid="${mod_appid:-346110}" arkautorestartfile="${arkautorestartfile:-ShooterGame/Saved/.autorestart}" +install_bindir="${install_bindir:-${0%/*}}" +install_libexecdir="${install_libexecdir:-${install_bindir%/*}/libexec/arkmanager}" # Script version arkstVersion="1.3" @@ -976,11 +978,18 @@ doUpgrade() { 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'` + reinstall_args=() + if [ -n "$install_bindir" ]; then + reinstall_args=( "${reinstall_args[@]}" "--bindir" "$install_bindir" ) + fi + if [ -n "$install_libexecdir" ]; then + reinstall_args=( "${reinstall_args[@]}" "--libexecdir" "$install_libexecdir" ) + fi 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" if [[ $REPLY =~ ^[Yy]$ ]]; then - curl -s https://raw.githubusercontent.com/FezVrasta/ark-server-tools/${arkstChannel}/netinstall.sh | $sudo bash -s -- ${steamcmd_user} ${arkstChannel} + curl -s https://raw.githubusercontent.com/FezVrasta/ark-server-tools/${arkstChannel}/netinstall.sh | $sudo bash -s -- ${steamcmd_user} ${arkstChannel} "${reinstall_args[@]}" else exit 0 fi @@ -988,7 +997,7 @@ doUpgrade() { 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} + curl -s https://raw.githubusercontent.com/FezVrasta/ark-server-tools/${arkstChannel}/netinstall.sh | $sudo bash -s -- ${steamcmd_user} ${arkstChannel} "${reinstall_args[@]}" else exit 0 fi diff --git a/tools/arkmanager.cfg b/tools/arkmanager.cfg index e3568e2..ad03cf9 100644 --- a/tools/arkmanager.cfg +++ b/tools/arkmanager.cfg @@ -1,4 +1,6 @@ arkstChannel="master" # change it to a different branch to get non-stable versions +install_bindir="/usr/bin" +install_libexecdir="/usr/libexec/arkmanager" # config SteamCMD steamcmdroot="/home/steam/steamcmd" # path of your steamcmd instance diff --git a/tools/install.sh b/tools/install.sh index 753297e..d190db2 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -129,6 +129,8 @@ if [ "$userinstall" == "yes" ]; then sed -i -e "s|^steamcmd_user=\"steam\"|steamcmd_user=\"--me\"|" \ -e "s|\"/home/steam|\"${PREFIX}|" \ -e "s|/var/log/arktools|${PREFIX}/logs/arktools|" \ + -e "s|^install_bindir=.*|install_bindir=\"${BINDIR}\"|" \ + -e "s|^install_libexecdir=.*|install_libexecdir=\"${LIBEXECDIR}\"|" \ "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg.NEW" # Copy arkmanager.cfg to ~/.arkmanager.cfg if it doesn't already exist @@ -229,6 +231,8 @@ else chown "$1" "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg.NEW" sed -i -e "s|^steamcmd_user=\"steam\"|steamcmd_user=\"$1\"|" \ -e "s|\"/home/steam|\"/home/$1|" \ + -e "s|^install_bindir=.*|install_bindir=\"${BINDIR}\"|" \ + -e "s|^install_libexecdir=.*|install_libexecdir=\"${LIBEXECDIR}\"|" \ "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg" if [ -f "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg" ]; then From f8789764dca33c67fa3bce1dcd8ecc0e930bfb35 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Fri, 18 Sep 2015 19:37:12 +1000 Subject: [PATCH 11/14] Add datadir and dataprefix arguments to install --- tools/arkmanager | 9 +++++++++ tools/arkmanager.cfg | 1 + tools/install.sh | 24 ++++++++++++++++++++++++ 3 files changed, 34 insertions(+) diff --git a/tools/arkmanager b/tools/arkmanager index 164e0b1..33c52b6 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -48,6 +48,12 @@ arkautorestartfile="${arkautorestartfile:-ShooterGame/Saved/.autorestart}" install_bindir="${install_bindir:-${0%/*}}" install_libexecdir="${install_libexecdir:-${install_bindir%/*}/libexec/arkmanager}" +if [ "$steamcmd_user" == "--me" ]; then + install_datadir="${install_datadir:-${HOME}/.share/local/arkmanager}" +else + install_datadir="${install_datadir:-${install_bindir%/*}/share/arkmanager}" +fi + # Script version arkstVersion="1.3" arkstCommit='' @@ -985,6 +991,9 @@ doUpgrade() { if [ -n "$install_libexecdir" ]; then reinstall_args=( "${reinstall_args[@]}" "--libexecdir" "$install_libexecdir" ) fi + if [ -n "$install_datadir" ]; then + reinstall_args=( "${reinstall_args[@]}" "--datadir" "$install_datadir" ) + fi 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" diff --git a/tools/arkmanager.cfg b/tools/arkmanager.cfg index ad03cf9..024a940 100644 --- a/tools/arkmanager.cfg +++ b/tools/arkmanager.cfg @@ -1,6 +1,7 @@ arkstChannel="master" # change it to a different branch to get non-stable versions install_bindir="/usr/bin" install_libexecdir="/usr/libexec/arkmanager" +install_datadir="/usr/share/arkmanager" # config SteamCMD steamcmdroot="/home/steam/steamcmd" # path of your steamcmd instance diff --git a/tools/install.sh b/tools/install.sh index d190db2..ceaae2d 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -28,6 +28,13 @@ while [ -n "$1" ]; do EXECPREFIX="$2" shift ;; + --data-prefix=*) + DATAPREFIX="${1#--data-prefix=}" + ;; + --data-prefix) + DATAPREFIX="$2" + shift + ;; --install-root=*) INSTALL_ROOT="${1#--install-root=}" ;; @@ -49,6 +56,13 @@ while [ -n "$1" ]; do LIBEXECDIR="$2" shift ;; + --datadir=*) + DATADIR="${1#--datadir=}" + ;; + --datadir) + DATADIR="$2" + shift + ;; -*) echo "Invalid option '$1'" showusage=yes @@ -84,13 +98,16 @@ fi if [ "$userinstall" == "yes" ]; then PREFIX="${PREFIX:-${HOME}}" EXECPREFIX="${EXECPREFIX:-${PREFIX}}" + DATAPREFIX="${DATAPREFIX:-${PREFIX}/.local/share}" else PREFIX="${PREFIX:-/usr/local}" EXECPREFIX="${EXECPREFIX:-${PREFIX}}" + DATAPREFIX="${DATAPREFIX:-${PREFIX}/share}" fi BINDIR="${BINDIR:-${EXECPREFIX}/bin}" LIBEXECDIR="${LIBEXECDIR:-${EXECPREFIX}/libexec/arkmanager}" +DATADIR="${DATADIR:-${DATAPREFIX}/arkmanager}" if [ "$showusage" == "yes" ]; then echo "Usage: ./install.sh {|--me} [OPTIONS]" @@ -106,11 +123,16 @@ if [ "$showusage" == "yes" ]; then echo " [PREFIX=${PREFIX}]" echo "--exec-prefix Specify the prefix under which to install executables" echo " [EXECPREFIX=${EXECPREFIX}]" + echo "--data-prefix Specify the prefix under which to install suppor files" + echo " [DATAPREFIX=${DATAPREFIX}]" echo "--install-root Specify the staging directory in which to perform the install" echo " [INSTALL_ROOT=${INSTALL_ROOT}]" echo "--bindir Specify the directory under which to install executables" echo " [BINDIR=${BINDIR}]" echo "--libexecdir Specify the directory under which to install executable support files" + echo " [LIBEXECDIR=${LIBEXECDIR}]" + echo "--datadir Specify the directory under which to install support files" + echo " [DATADIR=${DATADIR}]" exit 1 fi @@ -131,6 +153,7 @@ if [ "$userinstall" == "yes" ]; then -e "s|/var/log/arktools|${PREFIX}/logs/arktools|" \ -e "s|^install_bindir=.*|install_bindir=\"${BINDIR}\"|" \ -e "s|^install_libexecdir=.*|install_libexecdir=\"${LIBEXECDIR}\"|" \ + -e "s|^install_datadir=.*|install_datadir=\"${DATADIR}\"|" \ "${INSTALL_ROOT}${PREFIX}/.arkmanager.cfg.NEW" # Copy arkmanager.cfg to ~/.arkmanager.cfg if it doesn't already exist @@ -233,6 +256,7 @@ else -e "s|\"/home/steam|\"/home/$1|" \ -e "s|^install_bindir=.*|install_bindir=\"${BINDIR}\"|" \ -e "s|^install_libexecdir=.*|install_libexecdir=\"${LIBEXECDIR}\"|" \ + -e "s|^install_datadir=.*|install_datadir=\"${DATADIR}\"|" \ "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg" if [ -f "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg" ]; then From 2a3a2cc1aadc01cb21a705d425acf1e33ec04314 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Fri, 18 Sep 2015 19:41:43 +1000 Subject: [PATCH 12/14] Add uninstall scripts --- tools/install.sh | 19 +++++++++++++++++++ tools/uninstall-user.sh | 14 ++++++++++++++ tools/uninstall.sh | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 tools/uninstall-user.sh create mode 100644 tools/uninstall.sh diff --git a/tools/install.sh b/tools/install.sh index ceaae2d..d4e31d3 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -142,6 +142,16 @@ if [ "$userinstall" == "yes" ]; then cp arkmanager "${INSTALL_ROOT}${BINDIR}/arkmanager" chmod +x "${INSTALL_ROOT}${BINDIR}/arkmanager" + # Create a folder in ~/.local/share to store arkmanager support files + mkdir -p "${INSTALL_ROOT}${DATADIR}" + + # Copy the uninstall script to ~/.local/share/arkmanager + cp uninstall-user.sh "${INSTALL_ROOT}${DATADIR}/arkmanager-uninstall.sh" + chmod +x "${INSTALL_ROOT}${DATADIR}/arkmanager-uninstall.sh" + sed -i -e "s|^BINDIR=.*|BINDIR=\"${BINDIR}\"|" \ + -e "s|^DATADIR=.*|DATADIR=\"${DATADIR}\"|" \ + "${INSTALL_ROOT}${DATADIR}/arkmanager-uninstall.sh" + # Create a folder in ~/logs to let Ark tools write its own log files mkdir -p "${INSTALL_ROOT}${PREFIX}/logs/arktools" @@ -169,6 +179,15 @@ else cp arkmanager "${INSTALL_ROOT}${BINDIR}/arkmanager" chmod +x "${INSTALL_ROOT}${BINDIR}/arkmanager" + # Copy the uninstall script to ~/.local/share/arkmanager + mkdir -p "${INSTALL_ROOT}${LIBEXECDIR}" + cp uninstall.sh "${INSTALL_ROOT}${DATADIR}/arkmanager-uninstall.sh" + chmod +x "${INSTALL_ROOT}${DATADIR}/arkmanager-uninstall.sh" + sed -i -e "s|^BINDIR=.*|BINDIR=\"${BINDIR}\"|" \ + -e "s|^LIBEXECDIR=.*|LIBEXECDIR=\"${LIBEXECDIR}\"|" \ + -e "s|^DATADIR=.*|DATADIR=\"${DATADIR}\"|" \ + "${INSTALL_ROOT}${DATADIR}/arkmanager-uninstall.sh" + # Copy arkdaemon to /etc/init.d ,set permissions and add it to boot if [ -f /lib/lsb/init-functions ]; then # on debian 8, sysvinit and systemd are present. If systemd is available we use it instead of sysvinit diff --git a/tools/uninstall-user.sh b/tools/uninstall-user.sh new file mode 100644 index 0000000..77e7221 --- /dev/null +++ b/tools/uninstall-user.sh @@ -0,0 +1,14 @@ +#!/bin/bash +# +# uninstall-user.sh + +BINDIR="/home/steam/bin" +DATADIR="/home/steam/.local/share/arkmanager" + +for f in "${BINDIR}/arkmanager" \ + "${DATADIR}/uninstall.sh" +do + if [ -f "$f" ]; then + rm "$f" + fi +done diff --git a/tools/uninstall.sh b/tools/uninstall.sh new file mode 100644 index 0000000..e4f20b5 --- /dev/null +++ b/tools/uninstall.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# +# uninstall.sh + +BINDIR="/usr/bin" +DATADIR="/usr/share/arkmanager" +LIBEXECDIR="/usr/libexec/arkmanager" +INITSCRIPT= + +if [ -f "/etc/rc.d/init.d/arkmanager" ]; then + INITSCRIPT="/etc/rc.d/init.d/arkmanager" + if [ -f "/etc/rc.d/init.d/functions" ]; then + chkconfig arkmanager off + fi +elif [ -f "/etc/init.d/arkmanager" ]; then + INITSCRIPT="/etc/init.d/arkmanager" + if [ -f "/lib/lsb/init-functions" ]; then + update-rc.d -f arkmanager remove + elif [ -f "/sbin/runscript" ]; then + rc-update del arkmanager default + fi +elif [ -f "/etc/systemd/system/arkmanager.service" ]; then + INITSCRIPT="/etc/systemd/system/arkmanager.service" + systemctl disable arkmanager.service +fi + +if [ -n "$INITSCRIPT" ]; then + for f in "${INITSCRIPT}" \ + "${BINDIR}/arkmanager" \ + "${LIBEXECDIR}/arkmanager.init" \ + "${LIBEXECDIR}/arkmanager-uninstall.sh" + do + if [ -f "$f" ]; then + rm "$f" + fi + done +fi From 0a09613c3e0b00df34c416cf49cf4a2c827c0994 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Fri, 18 Sep 2015 19:51:31 +1000 Subject: [PATCH 13/14] Rename upgrade command to upgrade-tools --- tools/arkmanager | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/arkmanager b/tools/arkmanager index 33c52b6..5d8ac61 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -1104,7 +1104,7 @@ while true; do status) printStatus ;; - upgrade) + upgrade-tools) doUpgrade ;; useconfig) @@ -1134,7 +1134,7 @@ while true; do echo "update --warn Warn players before updating server" echo "update --validate Validates all ARK server files" echo "update --update-mods Updates installed and requested mods" - echo "upgrade Check for a new ARK Server Tools version and upgrades it if needed" + echo "upgrade-tools Check for a new ARK Server Tools version and upgrades it if needed" echo "useconfig Use the configuration overrides in the specified config name or file" exit 1 ;; From ee32f7c86a35146d1ff7d1a6300b6c5ab24974b7 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Fri, 18 Sep 2015 19:58:15 +1000 Subject: [PATCH 14/14] Add uninstall-tools command to arkmanager --- tools/arkmanager | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/tools/arkmanager b/tools/arkmanager index 5d8ac61..f3d90ab 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -1015,6 +1015,25 @@ doUpgrade() { fi } +doUninstallTools() { + local sudo=sudo + if [ "$steamcmd_user" == "--me" ]; then + sudo= + fi + + read -p "Are you sure you want to uninstall the ARK Server Tools?" -n 1 -r + + if [[ "$REPLY" =~ ^[Yy]$ ]]; then + if [ -n "${install_datadir}" -a -x "${install_datadir}/arkmanager-uninstall.sh" ]; then + $sudo "${install_datadir}/arkmanager-uninstall.sh" + exit 0 + elif [ -n "${install_libexecdir}" -a -x "${install_libexecdir}/arkmanager-uninstall.sh" ]; then + $sudo "${install_libexecdir}/arkmanager-uninstall.sh" + exit 0 + fi + fi +} + useConfig() { for varname in "${!configfile_@}"; do if [ "configfile_$1" == "$varname" ]; then @@ -1107,6 +1126,9 @@ while true; do upgrade-tools) doUpgrade ;; + uninstall-tools) + doUninstallTools + ;; useconfig) useConfig "$2" shift @@ -1135,6 +1157,7 @@ while true; do echo "update --validate Validates all ARK server files" echo "update --update-mods Updates installed and requested mods" echo "upgrade-tools Check for a new ARK Server Tools version and upgrades it if needed" + echo "uninstall-tools Uninstall the ARK Server Tools" echo "useconfig Use the configuration overrides in the specified config name or file" exit 1 ;;