mirror of
https://github.com/eliasstepanik/ark-ac-server-tools.git
synced 2026-01-22 14:48:26 +00:00
Merge pull request #137 from klightspeed/1.3-dev#multiserver
1.3 dev features
This commit is contained in:
commit
2e5aaf8c09
@ -553,13 +553,17 @@ printStatus(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
doUpgrade() {
|
doUpgrade() {
|
||||||
|
local sudo=sudo
|
||||||
|
if [ "$steamcmd_user" == "--me" ]; then
|
||||||
|
sudo=
|
||||||
|
fi
|
||||||
echo "arkmanager v${arkstVersion}: Checking for updates..."
|
echo "arkmanager v${arkstVersion}: Checking for updates..."
|
||||||
arkstLatestVersion=`curl -s https://raw.githubusercontent.com/FezVrasta/ark-server-tools/${arkstChannel}/.version`
|
arkstLatestVersion=`curl -s https://raw.githubusercontent.com/FezVrasta/ark-server-tools/${arkstChannel}/.version`
|
||||||
if [[ $arkstLatestVersion > $arkstVersion ]]; then
|
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
|
read -p "A new version was found! Do you want to upgrade ARK Server Tools to v${$arkstLatestVersion}?" -n 1 -r
|
||||||
echo -en "\n"
|
echo -en "\n"
|
||||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
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
|
else
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
@ -568,6 +572,16 @@ doUpgrade() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
useConfig() {
|
||||||
|
for varname in "${!configfile_@}"; do
|
||||||
|
if [ "configfile_$1" == "$varname" ]; then
|
||||||
|
source "${!varname}"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
source "$1"
|
||||||
|
}
|
||||||
|
|
||||||
#---------------------
|
#---------------------
|
||||||
# Main program
|
# Main program
|
||||||
#---------------------
|
#---------------------
|
||||||
@ -575,7 +589,8 @@ doUpgrade() {
|
|||||||
# check the configuration and throw errors or warnings if needed
|
# check the configuration and throw errors or warnings if needed
|
||||||
checkConfig
|
checkConfig
|
||||||
|
|
||||||
case "$1" in
|
while true; do
|
||||||
|
case "$1" in
|
||||||
start)
|
start)
|
||||||
doStart
|
doStart
|
||||||
;;
|
;;
|
||||||
@ -596,8 +611,10 @@ case "$1" in
|
|||||||
update)
|
update)
|
||||||
if [ "$2" == "--force" ]; then
|
if [ "$2" == "--force" ]; then
|
||||||
forceUpdate
|
forceUpdate
|
||||||
|
shift
|
||||||
elif [ "$2" == "--safe" ]; then
|
elif [ "$2" == "--safe" ]; then
|
||||||
doSafeUpdate
|
doSafeUpdate
|
||||||
|
shift
|
||||||
else
|
else
|
||||||
doUpdate
|
doUpdate
|
||||||
fi
|
fi
|
||||||
@ -610,12 +627,14 @@ case "$1" in
|
|||||||
;;
|
;;
|
||||||
broadcast)
|
broadcast)
|
||||||
doBroadcast "$2"
|
doBroadcast "$2"
|
||||||
|
shift
|
||||||
;;
|
;;
|
||||||
saveworld)
|
saveworld)
|
||||||
doSaveWorld
|
doSaveWorld
|
||||||
;;
|
;;
|
||||||
rconcmd)
|
rconcmd)
|
||||||
rconcmd "$2"
|
rconcmd "$2"
|
||||||
|
shift
|
||||||
;;
|
;;
|
||||||
status)
|
status)
|
||||||
printStatus
|
printStatus
|
||||||
@ -623,6 +642,10 @@ case "$1" in
|
|||||||
upgrade)
|
upgrade)
|
||||||
doUpgrade
|
doUpgrade
|
||||||
;;
|
;;
|
||||||
|
useconfig)
|
||||||
|
useConfig "$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
-h|--help)
|
-h|--help)
|
||||||
echo -e "Usage: arkmanager[OPTION]\n"
|
echo -e "Usage: arkmanager[OPTION]\n"
|
||||||
echo "Option Description"
|
echo "Option Description"
|
||||||
@ -640,9 +663,22 @@ case "$1" in
|
|||||||
echo "update --force Apply update without check the current version"
|
echo "update --force Apply update without check the current version"
|
||||||
echo "update --safe Wait for server to perform world save and update."
|
echo "update --safe Wait for server to perform world save and update."
|
||||||
echo "upgrade Check for a new ARK Server Tools version and upgrades it if needed"
|
echo "upgrade Check for a new ARK Server Tools version and upgrades it if needed"
|
||||||
|
echo "useconfig <name> Use the configuration overrides in the specified config name or file"
|
||||||
|
exit 1
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "arkmanager v${arkstVersion}: no command specified"
|
echo -n "arkmanager v${arkstVersion}: "
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
echo "no command specified"
|
||||||
|
else
|
||||||
|
echo "unknown command '$1' specified"
|
||||||
|
fi
|
||||||
echo "Try 'arkmanager -h' or 'arkmanager --help' for more information."
|
echo "Try 'arkmanager -h' or 'arkmanager --help' for more information."
|
||||||
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
shift
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|||||||
@ -31,3 +31,7 @@ logdir="/var/log/arktools" # Logs path
|
|||||||
|
|
||||||
# steamdb specific
|
# steamdb specific
|
||||||
appid=376030 # Linux server App ID
|
appid=376030 # Linux server App ID
|
||||||
|
|
||||||
|
# alternate configs
|
||||||
|
# example for config name "ark1":
|
||||||
|
#config_ark1="/path/to/config/file"
|
||||||
|
|||||||
@ -1,8 +1,37 @@
|
|||||||
#!/bin/bash
|
#!/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 [ ! -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
|
# Copy arkmanager to /usr/bin and set permissions
|
||||||
cp arkmanager "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager"
|
cp arkmanager "${INSTALL_ROOT}${EXECPREFIX}/bin/arkmanager"
|
||||||
chmod +x "${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"
|
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"
|
sed -i "s|^steamcmd_user=\"steam\"|steamcmd_user=\"$1\"|;s|\"/home/steam|\"/home/$1|" "${INSTALL_ROOT}/etc/arkmanager/arkmanager.cfg"
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
echo "You must specify your system steam user who own steamcmd directory to install ARK Tools."
|
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 "Usage: ./install.sh steam"
|
||||||
echo
|
echo
|
||||||
echo "Environment variables affecting install:"
|
echo "Environment variables affecting install:"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user