Fix broken server up detection

This commit is contained in:
Ben Peddell 2019-06-23 04:40:46 +10:00
parent 41556ffe9e
commit 5d839a76a0

View File

@ -1034,6 +1034,7 @@ doRun() {
fi fi
arkserveropts="$serverMap" arkserveropts="$serverMap"
declare -A usedoptions
while read varname; do while read varname; do
val="${!varname}" val="${!varname}"
@ -1049,6 +1050,7 @@ doRun() {
ark_TotalConversionMod="${modid}" ark_TotalConversionMod="${modid}"
;; ;;
esac esac
usedoptions[${varname}]="${val}"
done < <(sed -n 's/^\(arkmod_[^= ]*\)=.*/\1/p' <"$configfile") done < <(sed -n 's/^\(arkmod_[^= ]*\)=.*/\1/p' <"$configfile")
if [[ ( -z "$serverMap" || "$serverMap" == "TheIsland" ) && -n "$serverMapModId" ]]; then if [[ ( -z "$serverMap" || "$serverMap" == "TheIsland" ) && -n "$serverMapModId" ]]; then
@ -1104,42 +1106,51 @@ doRun() {
arkextraopts=( "${arkextraopts[@]}" "-${name}" ) arkextraopts=( "${arkextraopts[@]}" "-${name}" )
;; ;;
esac esac
unset $varname usedoptions[$varname]="${val}"
done < <(sed -n 's/^\(ark\(\|opt\|flag\)_[^= ]*\)=.*/\1/p' <"$configfile") done < <(sed -n 's/^\(ark\(\|opt\|flag\)_[^= ]*\)=.*/\1/p' <"$configfile")
# bring in ark_... options # bring in ark_... options
for varname in "${!ark_@}"; do for varname in "${!ark_@}"; do
name="${varname#ark_}" if [ -z "${usedoptions[${varname}]}" ]; then
val="${!varname}" name="${varname#ark_}"
val="${!varname}"
# Port is actually one higher than specified # Port is actually one higher than specified
# i.e. specifying port 7777 will have the server # i.e. specifying port 7777 will have the server
# use port 7778 # use port 7778
if [ "$name" == "Port" ]; then if [ "$name" == "Port" ]; then
(( val = val - 1 )) (( val = val - 1 ))
fi fi
if [ -n "$val" ]; then if [ -n "$val" ]; then
arkserveropts="${arkserveropts}?${name}=${val}" arkserveropts="${arkserveropts}?${name}=${val}"
else else
arkserveropts="${arkserveropts}?${name}" arkserveropts="${arkserveropts}?${name}"
fi
usedoptions[${varname}]="${val}"
fi fi
done done
# bring in arkflag_... flags # bring in arkflag_... flags
for varname in "${!arkflag_@}"; do for varname in "${!arkflag_@}"; do
name="${varname#arkflag_}" if [ -z "${usedoptions[${varname}]}" ]; then
name="${varname#arkflag_}"
arkextraopts=( "${arkextraopts[@]}" "-${name}" ) arkextraopts=( "${arkextraopts[@]}" "-${name}" )
usedoptions[${varname}]="${val}"
fi
done done
# bring in arkopt_... options # bring in arkopt_... options
for varname in "${!arkopt_@}"; do for varname in "${!arkopt_@}"; do
name="${varname#arkopt_}" if [ -z "${usedoptions[${varname}]}" ]; then
val="${!varname}" name="${varname#arkopt_}"
val="${!varname}"
if [ -n "$val" ]; then if [ -n "$val" ]; then
arkextraopts=( "${arkextraopts[@]}" "-${name}=${val}" ) arkextraopts=( "${arkextraopts[@]}" "-${name}=${val}" )
fi
usedoptions[${varname}]="${val}"
fi fi
done done