mirror of
https://github.com/eliasstepanik/ark-ac-server-tools.git
synced 2026-01-12 19:08:27 +00:00
Merge pull request #172 from klightspeed/1.4-dev#uninstall
Improve install and add uninstall script
This commit is contained in:
commit
81236a3ad2
@ -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=$?
|
||||
|
||||
|
||||
@ -45,6 +45,14 @@ 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}"
|
||||
|
||||
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"
|
||||
@ -75,8 +83,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
|
||||
@ -974,11 +984,21 @@ 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 [ -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"
|
||||
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
|
||||
@ -986,7 +1006,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
|
||||
@ -995,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
|
||||
@ -1084,9 +1123,12 @@ while true; do
|
||||
status)
|
||||
printStatus
|
||||
;;
|
||||
upgrade)
|
||||
upgrade-tools)
|
||||
doUpgrade
|
||||
;;
|
||||
uninstall-tools)
|
||||
doUninstallTools
|
||||
;;
|
||||
useconfig)
|
||||
useConfig "$2"
|
||||
shift
|
||||
@ -1114,7 +1156,8 @@ 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 "uninstall-tools Uninstall the ARK Server Tools"
|
||||
echo "useconfig <name> Use the configuration overrides in the specified config name or file"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
@ -1,4 +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
|
||||
|
||||
255
tools/install.sh
255
tools/install.sh
@ -1,51 +1,203 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ "$1" == "--me" ]; then
|
||||
PREFIX="${PREFIX:-${HOME}}"
|
||||
EXECPREFIX="${EXECPREFIX:-${PREFIX}}"
|
||||
else
|
||||
EXECPREFIX="${EXECPREFIX:-/usr/local}"
|
||||
userinstall=no
|
||||
steamcmd_user=
|
||||
showusage=no
|
||||
|
||||
while [ -n "$1" ]; do
|
||||
case "$1" in
|
||||
--me)
|
||||
userinstall=yes
|
||||
steamcmd_user="--me"
|
||||
;;
|
||||
-h|--help)
|
||||
showusage=yes
|
||||
break
|
||||
;;
|
||||
--prefix=*)
|
||||
PREFIX="${1#--prefix=}"
|
||||
;;
|
||||
--prefix)
|
||||
PREFIX="$2"
|
||||
shift
|
||||
;;
|
||||
--exec-prefix=*)
|
||||
EXECPREFIX="${1#--exec-prefix=}"
|
||||
;;
|
||||
--exec-prefix)
|
||||
EXECPREFIX="$2"
|
||||
shift
|
||||
;;
|
||||
--data-prefix=*)
|
||||
DATAPREFIX="${1#--data-prefix=}"
|
||||
;;
|
||||
--data-prefix)
|
||||
DATAPREFIX="$2"
|
||||
shift
|
||||
;;
|
||||
--install-root=*)
|
||||
INSTALL_ROOT="${1#--install-root=}"
|
||||
;;
|
||||
--install-root)
|
||||
INSTALL_ROOT="$2"
|
||||
shift
|
||||
;;
|
||||
--bindir=*)
|
||||
BINDIR="${1#--bindir=}"
|
||||
;;
|
||||
--bindir)
|
||||
BINDIR="$2"
|
||||
shift
|
||||
;;
|
||||
--libexecdir=*)
|
||||
LIBEXECDIR="${1#--libexecdir=}"
|
||||
;;
|
||||
--libexecdir)
|
||||
LIBEXECDIR="$2"
|
||||
shift
|
||||
;;
|
||||
--datadir=*)
|
||||
DATADIR="${1#--datadir=}"
|
||||
;;
|
||||
--datadir)
|
||||
DATADIR="$2"
|
||||
shift
|
||||
;;
|
||||
-*)
|
||||
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 [ ! -z "$1" ]; then
|
||||
if [ "$1" == "--me" -a "$UID" -ne 0 ]; then
|
||||
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}}"
|
||||
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 {<user>|--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
|
||||
echo "<user> 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 "--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
|
||||
|
||||
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 ~/.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"
|
||||
|
||||
# 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|" \
|
||||
-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
|
||||
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
|
||||
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"
|
||||
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
|
||||
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@DAEMON=\"${EXECPREFIX}@" "${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
|
||||
@ -55,7 +207,7 @@ if [ ! -z "$1" ]; then
|
||||
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
|
||||
@ -66,12 +218,12 @@ if [ ! -z "$1" ]; then
|
||||
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@DAEMON=\"${EXECPREFIX}@" "${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
|
||||
@ -81,7 +233,7 @@ if [ ! -z "$1" ]; then
|
||||
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"
|
||||
@ -91,19 +243,19 @@ 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@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"
|
||||
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@DAEMON=\"${EXECPREFIX}@" "${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"
|
||||
@ -117,29 +269,22 @@ if [ ! -z "$1" ]; then
|
||||
|
||||
# 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|" \
|
||||
-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
|
||||
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
|
||||
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
|
||||
|
||||
14
tools/uninstall-user.sh
Normal file
14
tools/uninstall-user.sh
Normal file
@ -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
|
||||
37
tools/uninstall.sh
Normal file
37
tools/uninstall.sh
Normal file
@ -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
|
||||
Loading…
x
Reference in New Issue
Block a user