mirror of
https://github.com/eliasstepanik/ark-ac-server-tools.git
synced 2026-01-27 16:58:27 +00:00
Merge pull request #167 from klightspeed/1.4-dev#modupdate
1.4 dev#modupdate
This commit is contained in:
commit
ec8eec8cfa
444
tools/arkmanager
444
tools/arkmanager
@ -444,157 +444,12 @@ doInstall() {
|
|||||||
getCurrentVersion
|
getCurrentVersion
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
|
||||||
# Stop the server, update it and then start it back.
|
|
||||||
#
|
|
||||||
doUpdate() {
|
|
||||||
cd "$arkserverroot"
|
|
||||||
|
|
||||||
if isUpdateNeeded; then
|
|
||||||
forceUpdate
|
|
||||||
else
|
|
||||||
echo "Your server is already up to date! The most recent version is ${bnumber}."
|
|
||||||
echo "`timestamp`: No update needed." >> "$logdir/update.log"
|
|
||||||
fi;
|
|
||||||
}
|
|
||||||
|
|
||||||
forceUpdate(){
|
|
||||||
# check if the server was alive before the update so we can launch it back after the update
|
|
||||||
serverWasAlive=0
|
|
||||||
if isTheServerRunning ;then
|
|
||||||
serverWasAlive=1
|
|
||||||
fi
|
|
||||||
doStop
|
|
||||||
cd "$steamcmdroot"
|
|
||||||
./$steamcmdexec +login anonymous +force_install_dir "$arkserverroot" +app_update $appid +quit
|
|
||||||
# the current version should be the last version. We set our version
|
|
||||||
getCurrentVersion
|
|
||||||
echo "`timestamp`: update to $instver complete" >> "$logdir/update.log"
|
|
||||||
|
|
||||||
# we restart the server only if it was started before the update
|
|
||||||
if [ $serverWasAlive -eq 1 ]; then
|
|
||||||
doStart
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Waits for server to perform save before update (until save file is newer than 1 minute)
|
|
||||||
#
|
|
||||||
doSafeUpdate(){
|
|
||||||
cd "$arkserverroot"
|
|
||||||
|
|
||||||
if isUpdateNeeded; then
|
|
||||||
while [ ! `find $arkserverroot/ShooterGame/Saved/SavedArks -mmin -1 -name ${serverMap##*/}.ark` ]; do
|
|
||||||
echo "`timestamp`: Save file older than 1 minute. Delaying update." >> "$logdir/update.log"
|
|
||||||
sleep 30s
|
|
||||||
done
|
|
||||||
echo "`timestamp`: Save file newer than 1 minute. Performing an update." >> "$logdir/update.log"
|
|
||||||
forceUpdate
|
|
||||||
else
|
|
||||||
echo "Your server is already up to date! The most recent version is ${bnumber}."
|
|
||||||
echo "`timestamp`: No update needed." >> "$logdir/update.log"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Downloads mod and installs it into mods directory
|
|
||||||
#
|
|
||||||
doInstallMod(){
|
|
||||||
local modid=$1
|
|
||||||
local modsrcdir="$steamcmdroot/steamapps/workshop/content/$mod_appid/$modid"
|
|
||||||
local moddldir="$steamcmdroot/steamapps/workshop/downloads/$mod_appid/$modid"
|
|
||||||
local moddestdir="$arkserverroot/ShooterGame/Content/Mods/$modid"
|
|
||||||
local dlsize=0
|
|
||||||
cd "$steamcmdroot"
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
./$steamcmdexec +login anonymous +workshop_download_item $mod_appid $modid +quit
|
|
||||||
if [ ! -d "$moddldir" ]; then break; fi
|
|
||||||
local newsize="`du -s "$moddldir" | cut -f1`"
|
|
||||||
if [ $newsize -eq $dlsize ]; then break; fi
|
|
||||||
dlsize=$newsize
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ -f "$modsrcdir/mod.info" ]; then
|
|
||||||
echo "Mod $modid downloaded"
|
|
||||||
echo "Copying files to $moddestdir"
|
|
||||||
if [ -f "$modsrcdir/LinuxNoEditor/mod.info" ]; then
|
|
||||||
modsrcdir="$modsrcdir/LinuxNoEditor"
|
|
||||||
fi
|
|
||||||
|
|
||||||
find "$modsrcdir" -type d -printf "$moddestdir/%P\0" | xargs -0 -r mkdir -p
|
|
||||||
find "$modsrcdir" -type f ! \( -name '*.z' -or -name '*.z.uncompressed_size' \) -printf "%P\0" | xargs -0 -r tar -c -C "$modsrcdir" | tar -x -C "$moddestdir"
|
|
||||||
find "$modsrcdir" -type f -name '*.z' -printf "%P\n" | while read f; do
|
|
||||||
printf "%10d %s " "`stat -c '%s' "$modsrcdir/$f"`" "${f%.z}"
|
|
||||||
perl -M'Compress::Raw::Zlib' -e '
|
|
||||||
my $sig;
|
|
||||||
read(STDIN, $sig, 8) or die "Unable to read compressed file";
|
|
||||||
if ($sig != "\xC1\x83\x2A\x9E\x00\x00\x00\x00"){
|
|
||||||
die "Bad file magic";
|
|
||||||
}
|
|
||||||
my $data;
|
|
||||||
read(STDIN, $data, 24) or die "Unable to read compressed file";
|
|
||||||
my ($chunksizelo, $chunksizehi,
|
|
||||||
$comprtotlo, $comprtothi,
|
|
||||||
$uncomtotlo, $uncomtothi) = unpack("(LLLLLL)<", $data);
|
|
||||||
my @chunks = ();
|
|
||||||
my $comprused = 0;
|
|
||||||
while ($comprused < $comprtotlo) {
|
|
||||||
read(STDIN, $data, 16) or die "Unable to read compressed file";
|
|
||||||
my ($comprsizelo, $comprsizehi,
|
|
||||||
$uncomsizelo, $uncomsizehi) = unpack("(LLLL)<", $data);
|
|
||||||
push @chunks, $comprsizelo;
|
|
||||||
$comprused += $comprsizelo;
|
|
||||||
}
|
|
||||||
foreach my $comprsize (@chunks) {
|
|
||||||
read(STDIN, $data, $comprsize) or die "File read failed";
|
|
||||||
my ($inflate, $status) = new Compress::Raw::Zlib::Inflate();
|
|
||||||
my $output;
|
|
||||||
$status = $inflate->inflate($data, $output, 1);
|
|
||||||
if ($status != Z_STREAM_END) {
|
|
||||||
die "Bad compressed stream; status: " . ($status);
|
|
||||||
}
|
|
||||||
if (length($data) != 0) {
|
|
||||||
die "Unconsumed data in input"
|
|
||||||
}
|
|
||||||
print $output;
|
|
||||||
}
|
|
||||||
' <"$modsrcdir/$f" >"$moddestdir/${f%.z}"
|
|
||||||
echo -ne "\r\\033[K"
|
|
||||||
done
|
|
||||||
|
|
||||||
perl -e '
|
|
||||||
my $data;
|
|
||||||
{ local $/; $data = <STDIN>; }
|
|
||||||
my $mapnamelen = unpack("@0 L<", $data);
|
|
||||||
my $mapname = substr($data, 4, $mapnamelen - 1);
|
|
||||||
$mapnamelen += 4;
|
|
||||||
my $mapfilelen = unpack("@" . ($mapnamelen + 4) . " L<", $data);
|
|
||||||
my $mapfile = substr($data, $mapnamelen + 8, $mapfilelen);
|
|
||||||
print pack("L< L< L< Z8 L< C L< L<", $ARGV[0], 0, 8, "ModName", 1, 0, 1, $mapfilelen);
|
|
||||||
print $mapfile;
|
|
||||||
print "\x33\xFF\x22\xFF\x02\x00\x00\x00\x01";
|
|
||||||
' $modid <"$moddestdir/mod.info" >"$moddestdir/.mod"
|
|
||||||
|
|
||||||
if [ -f "$moddestdir/modmeta.info" ]; then
|
|
||||||
cat "$moddestdir/modmeta.info" >>"$moddestdir/.mod"
|
|
||||||
else
|
|
||||||
echo -ne '\x01\x00\x00\x00\x08\x00\x00\x00ModType\x00\x02\x00\x00\x001\x00' >>"$moddestdir/.mod"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Mod $modid installed"
|
|
||||||
else
|
|
||||||
echo "Mod $modid was not successfully downloaded"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Waits for a configurable number of minutes before updating the server
|
# Waits for a configurable number of minutes before updating the server
|
||||||
#
|
#
|
||||||
doWarnUpdate(){
|
doUpdateWarn(){
|
||||||
cd "$arkserverroot"
|
cd "$arkserverroot"
|
||||||
|
|
||||||
if isUpdateNeeded; then
|
|
||||||
local pid=`getServerPID`
|
local pid=`getServerPID`
|
||||||
if [ -n "$pid" ]; then
|
if [ -n "$pid" ]; then
|
||||||
local warnmsg
|
local warnmsg
|
||||||
@ -641,8 +496,280 @@ doWarnUpdate(){
|
|||||||
|
|
||||||
if [ "`getServerPID`" != "$pid" ]; then
|
if [ "`getServerPID`" != "$pid" ]; then
|
||||||
echo "Server has stopped. Aborting update"
|
echo "Server has stopped. Aborting update"
|
||||||
|
return 1
|
||||||
fi
|
fi
|
||||||
doUpdate
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Stop the server, update it and then start it back.
|
||||||
|
#
|
||||||
|
doUpdate() {
|
||||||
|
local appupdate=
|
||||||
|
local updatetype=normal
|
||||||
|
local validate=
|
||||||
|
local modupdate=
|
||||||
|
|
||||||
|
for arg in "$@"; do
|
||||||
|
if [ "$arg" == "--force" ]; then
|
||||||
|
appupdate=1
|
||||||
|
elif [ "$arg" == "--safe" ]; then
|
||||||
|
updatetype=safe
|
||||||
|
elif [ "$arg" == "--warn" ]; then
|
||||||
|
updatetype=warn
|
||||||
|
elif [ "$arg" == "--validate" ]; then
|
||||||
|
validate=validate
|
||||||
|
appupdate=1
|
||||||
|
elif [ "$arg" == "--update-mods" ]; then
|
||||||
|
modupdate=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -n "$modupdate" ]; then
|
||||||
|
if ! doDownloadAllMods; then
|
||||||
|
modupdate=
|
||||||
|
fi
|
||||||
|
if ! isAnyModUpdateNeeded; then
|
||||||
|
modupdate=
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "$arkserverroot"
|
||||||
|
|
||||||
|
if isUpdateNeeded; then
|
||||||
|
appupdate=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$appupdate" -o -n "$modupdate" ]; then
|
||||||
|
if isTheServerRunning; then
|
||||||
|
if [ "$updatetype" == "safe" ]; then
|
||||||
|
while [ ! `find $arkserverroot/ShooterGame/Saved/SavedArks -mmin -1 -name ${serverMap##*/}.ark` ]; do
|
||||||
|
echo "`timestamp`: Save file older than 1 minute. Delaying update." >> "$logdir/update.log"
|
||||||
|
sleep 30s
|
||||||
|
done
|
||||||
|
echo "`timestamp`: Save file newer than 1 minute. Performing an update." >> "$logdir/update.log"
|
||||||
|
elif [ "$updatetype" == "warn" ]; then
|
||||||
|
if ! doUpdateWarn; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check if the server was alive before the update so we can launch it back after the update
|
||||||
|
serverWasAlive=0
|
||||||
|
if isTheServerRunning ;then
|
||||||
|
serverWasAlive=1
|
||||||
|
fi
|
||||||
|
doStop
|
||||||
|
|
||||||
|
if [ -n "$appupdate" ]; then
|
||||||
|
cd "$steamcmdroot"
|
||||||
|
./$steamcmdexec +login anonymous +force_install_dir "$arkserverroot" +app_update $appid $validate +quit
|
||||||
|
# the current version should be the last version. We set our version
|
||||||
|
getCurrentVersion
|
||||||
|
echo "`timestamp`: update to $instver complete" >> "$logdir/update.log"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$modupdate" ]; then
|
||||||
|
for modid in $(getModIds); do
|
||||||
|
if isModUpdateNeeded $modid; then
|
||||||
|
doExtractMod $modid
|
||||||
|
echo "`timestamp`: Mod $modid updated" >> "$logdir/update.log"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# we restart the server only if it was started before the update
|
||||||
|
if [ $serverWasAlive -eq 1 ]; then
|
||||||
|
doStart
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Your server is already up to date! The most recent version is ${bnumber}."
|
||||||
|
echo "`timestamp`: No update needed." >> "$logdir/update.log"
|
||||||
|
fi;
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Get the Mod IDs of the installed mods and the requested mods
|
||||||
|
#
|
||||||
|
getModIds(){
|
||||||
|
(
|
||||||
|
echo "${serverMapModId}"
|
||||||
|
echo "${ark_TotalConversionMod}"
|
||||||
|
echo "${ark_GameModIds}" | tr ',' '\n'
|
||||||
|
find "${arkserverroot}/ShooterGame/Content/Mods" -maxdepth 1 -type d -printf "%P\n"
|
||||||
|
) | sort | uniq | grep '^[1-9][0-9]*$'
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Downloads a mod from the Steam workshop
|
||||||
|
#
|
||||||
|
doDownloadMod(){
|
||||||
|
local modid=$1
|
||||||
|
local modsrcdir="$steamcmdroot/steamapps/workshop/content/$mod_appid/$modid"
|
||||||
|
local moddldir="$steamcmdroot/steamapps/workshop/downloads/$mod_appid/$modid"
|
||||||
|
local dlsize=0
|
||||||
|
cd "$steamcmdroot"
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
./$steamcmdexec +login anonymous +workshop_download_item $mod_appid $modid +quit
|
||||||
|
if [ ! -d "$moddldir" ]; then break; fi
|
||||||
|
local newsize="`du -s "$moddldir" | cut -f1`"
|
||||||
|
if [ $newsize -eq $dlsize ]; then break; fi
|
||||||
|
dlsize=$newsize
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -f "$modsrcdir/mod.info" ]; then
|
||||||
|
echo "Mod $modid downloaded"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
echo "Mod $modid was not successfully downloaded"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Downloads all installed and requested mods from the Steam workshop
|
||||||
|
#
|
||||||
|
doDownloadAllMods(){
|
||||||
|
for modid in $(getModIds); do
|
||||||
|
doDownloadMod $modid || return 1
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Checks if the files a mod owns need to be updated
|
||||||
|
#
|
||||||
|
isModUpdateNeeded(){
|
||||||
|
local modid=$1
|
||||||
|
local modsrcdir="$steamcmdroot/steamapps/workshop/content/$mod_appid/$modid"
|
||||||
|
local moddestdir="$arkserverroot/ShooterGame/Content/Mods/$modid"
|
||||||
|
|
||||||
|
if [ -f "$modsrcdir/mod.info" ]; then
|
||||||
|
if [ -f "$modsrcdir/LinuxNoEditor/mod.info" ]; then
|
||||||
|
modsrcdir="$modsrcdir/LinuxNoEditor"
|
||||||
|
fi
|
||||||
|
|
||||||
|
find "$modsrcdir" -type f ! -name "*.z.uncompressed_size" -printf "%P\n" | while read f; do
|
||||||
|
if [ ! -f "$moddestdir/${f%.z}" -o "$modsrcdir/$f" -nt "$moddestdir/${f%.z}" ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Checks if any installed or requested mods need to be updated
|
||||||
|
#
|
||||||
|
isAnyModUpdateNeeded(){
|
||||||
|
for modid in $(getModIds); do
|
||||||
|
if isModUpdateNeeded $modid; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Extracts a mod into the ARK Mods directory
|
||||||
|
#
|
||||||
|
doExtractMod(){
|
||||||
|
local modid=$1
|
||||||
|
local modsrcdir="$steamcmdroot/steamapps/workshop/content/$mod_appid/$modid"
|
||||||
|
local moddestdir="$arkserverroot/ShooterGame/Content/Mods/$modid"
|
||||||
|
|
||||||
|
if [ -f "$modsrcdir/mod.info" ]; then
|
||||||
|
echo "Copying files to $moddestdir"
|
||||||
|
if [ -f "$modsrcdir/LinuxNoEditor/mod.info" ]; then
|
||||||
|
modsrcdir="$modsrcdir/LinuxNoEditor"
|
||||||
|
fi
|
||||||
|
|
||||||
|
find "$modsrcdir" -type d -printf "$moddestdir/%P\0" | xargs -0 -r mkdir -p
|
||||||
|
|
||||||
|
find "$modsrcdir" -type f ! \( -name '*.z' -or -name '*.z.uncompressed_size' \) -printf "%P\n" | while read f; do
|
||||||
|
if [ ! -f "$moddestdir/$f" -o "$modsrcdir/$f" -nt "$moddestdir/$f" ]; then
|
||||||
|
printf "%10d %s " "`stat -c '%s' "$modsrcdir/$f"`" "$f"
|
||||||
|
cp "$modsrcdir/$f" "$moddestdir/$f"
|
||||||
|
echo -ne "\r\\033[K"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
find "$modsrcdir" -type f -name '*.z' -printf "%P\n" | while read f; do
|
||||||
|
if [ ! -f "$moddestdir/${f%.z}" -o "$modsrcdir/$f" -nt "$moddestdir/${f%.z}" ]; then
|
||||||
|
printf "%10d %s " "`stat -c '%s' "$modsrcdir/$f"`" "${f%.z}"
|
||||||
|
perl -M'Compress::Raw::Zlib' -e '
|
||||||
|
my $sig;
|
||||||
|
read(STDIN, $sig, 8) or die "Unable to read compressed file";
|
||||||
|
if ($sig != "\xC1\x83\x2A\x9E\x00\x00\x00\x00"){
|
||||||
|
die "Bad file magic";
|
||||||
|
}
|
||||||
|
my $data;
|
||||||
|
read(STDIN, $data, 24) or die "Unable to read compressed file";
|
||||||
|
my ($chunksizelo, $chunksizehi,
|
||||||
|
$comprtotlo, $comprtothi,
|
||||||
|
$uncomtotlo, $uncomtothi) = unpack("(LLLLLL)<", $data);
|
||||||
|
my @chunks = ();
|
||||||
|
my $comprused = 0;
|
||||||
|
while ($comprused < $comprtotlo) {
|
||||||
|
read(STDIN, $data, 16) or die "Unable to read compressed file";
|
||||||
|
my ($comprsizelo, $comprsizehi,
|
||||||
|
$uncomsizelo, $uncomsizehi) = unpack("(LLLL)<", $data);
|
||||||
|
push @chunks, $comprsizelo;
|
||||||
|
$comprused += $comprsizelo;
|
||||||
|
}
|
||||||
|
foreach my $comprsize (@chunks) {
|
||||||
|
read(STDIN, $data, $comprsize) or die "File read failed";
|
||||||
|
my ($inflate, $status) = new Compress::Raw::Zlib::Inflate();
|
||||||
|
my $output;
|
||||||
|
$status = $inflate->inflate($data, $output, 1);
|
||||||
|
if ($status != Z_STREAM_END) {
|
||||||
|
die "Bad compressed stream; status: " . ($status);
|
||||||
|
}
|
||||||
|
if (length($data) != 0) {
|
||||||
|
die "Unconsumed data in input"
|
||||||
|
}
|
||||||
|
print $output;
|
||||||
|
}
|
||||||
|
' <"$modsrcdir/$f" >"$moddestdir/${f%.z}"
|
||||||
|
touch -c -r "$modsrcdir/$f" "$moddestdir/${f%.z}"
|
||||||
|
echo -ne "\r\\033[K"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
perl -e '
|
||||||
|
my $data;
|
||||||
|
{ local $/; $data = <STDIN>; }
|
||||||
|
my $mapnamelen = unpack("@0 L<", $data);
|
||||||
|
my $mapname = substr($data, 4, $mapnamelen - 1);
|
||||||
|
$mapnamelen += 4;
|
||||||
|
my $mapfilelen = unpack("@" . ($mapnamelen + 4) . " L<", $data);
|
||||||
|
my $mapfile = substr($data, $mapnamelen + 8, $mapfilelen);
|
||||||
|
print pack("L< L< L< Z8 L< C L< L<", $ARGV[0], 0, 8, "ModName", 1, 0, 1, $mapfilelen);
|
||||||
|
print $mapfile;
|
||||||
|
print "\x33\xFF\x22\xFF\x02\x00\x00\x00\x01";
|
||||||
|
' $modid <"$moddestdir/mod.info" >"$moddestdir/.mod"
|
||||||
|
|
||||||
|
if [ -f "$moddestdir/modmeta.info" ]; then
|
||||||
|
cat "$moddestdir/modmeta.info" >>"$moddestdir/.mod"
|
||||||
|
else
|
||||||
|
echo -ne '\x01\x00\x00\x00\x08\x00\x00\x00ModType\x00\x02\x00\x00\x001\x00' >>"$moddestdir/.mod"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Downloads mod and installs it into mods directory
|
||||||
|
#
|
||||||
|
doInstallMod(){
|
||||||
|
local modid=$1
|
||||||
|
|
||||||
|
if doDownloadMod $modid; then
|
||||||
|
doExtractMod $modid
|
||||||
|
echo "Mod $modid installed"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -869,18 +996,14 @@ while true; do
|
|||||||
doInstall
|
doInstall
|
||||||
;;
|
;;
|
||||||
update)
|
update)
|
||||||
if [ "$2" == "--force" ]; then
|
args=()
|
||||||
forceUpdate
|
|
||||||
|
while [[ "$2" =~ ^-- ]]; do
|
||||||
|
args=( "${args[@]}" "$2" )
|
||||||
shift
|
shift
|
||||||
elif [ "$2" == "--safe" ]; then
|
done
|
||||||
doSafeUpdate
|
|
||||||
shift
|
doUpdate "${args[@]}"
|
||||||
elif [ "$2" == "--warn" ]; then
|
|
||||||
doWarnUpdate
|
|
||||||
shift
|
|
||||||
else
|
|
||||||
doUpdate
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
checkupdate)
|
checkupdate)
|
||||||
checkForUpdate
|
checkForUpdate
|
||||||
@ -922,6 +1045,7 @@ while true; do
|
|||||||
echo "rconcmd <cmd> Execute RCON command on server"
|
echo "rconcmd <cmd> Execute RCON command on server"
|
||||||
echo "checkupdate Check for a new ARK server version"
|
echo "checkupdate Check for a new ARK server version"
|
||||||
echo "install Install the ARK server files from steamcmd"
|
echo "install Install the ARK server files from steamcmd"
|
||||||
|
echo "installmod <modid> Installs a mod from the Steam workshop"
|
||||||
echo "restart Stops the server and then starts it"
|
echo "restart Stops the server and then starts it"
|
||||||
echo "restart --all Restarts all servers specified in configfile_xxxxx"
|
echo "restart --all Restarts all servers specified in configfile_xxxxx"
|
||||||
echo "start Starts the server"
|
echo "start Starts the server"
|
||||||
@ -930,9 +1054,11 @@ while true; do
|
|||||||
echo "stop --all Stops all servers specified in configfile_xxxxx"
|
echo "stop --all Stops all servers specified in configfile_xxxxx"
|
||||||
echo "status Returns the status of the current ARK server instance"
|
echo "status Returns the status of the current ARK server instance"
|
||||||
echo "update Check for a new ARK server version, if needed, stops the server, updates it, and starts it again"
|
echo "update Check for a new ARK server version, if needed, stops the server, updates it, and starts it again"
|
||||||
echo "update --force Apply update without check the current version"
|
echo "update --force Apply update without checking 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 "update --warn Warn players before updating server"
|
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 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"
|
echo "useconfig <name> Use the configuration overrides in the specified config name or file"
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user