From f58645cc1a260362a836c2b2c13b9b6e8218656a Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Mon, 20 Jul 2015 04:39:30 +1000 Subject: [PATCH] Support special "--me" user-install --- tools/arkmanager | 6 +++++- tools/install.sh | 34 ++++++++++++++++++++++++++++++++-- 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/tools/arkmanager b/tools/arkmanager index 6e9c1e5..f0079ff 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -553,13 +553,17 @@ printStatus(){ } doUpgrade() { + local sudo=sudo + if [ "$steamcmd_user" == "--me" ]; then + sudo= + fi echo "arkmanager v${arkstVersion}: Checking for updates..." arkstLatestVersion=`curl -s https://raw.githubusercontent.com/FezVrasta/ark-server-tools/${arkstChannel}/.version` 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} else exit 0 fi diff --git a/tools/install.sh b/tools/install.sh index fee74a2..0ccc309 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -1,8 +1,37 @@ #!/bin/bash -EXECPREFIX="${EXECPREFIX:-/usr/local}" +if [ "$1" == "--me" ]; 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 + # Copy arkmanager to ~/bin + mkdir -p "${INSTALL_ROOT}${EXECPREFIX}/bin" + cp arkmanager "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager" + chmod +x "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager" + + # 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 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" + fi + 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 cp arkmanager "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager" chmod +x "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager" @@ -99,9 +128,10 @@ 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:"