diff --git a/lgsm/functions/command_update.sh b/lgsm/functions/command_update.sh
index 965fb934e..b9a1eca4b 100644
--- a/lgsm/functions/command_update.sh
+++ b/lgsm/functions/command_update.sh
@@ -13,4 +13,6 @@ if [ "${gamename}" == "Teamspeak 3" ]; then
update_ts3.sh
elif [ "${engine}" == "goldsource" ]||[ "${forceupdate}" == "1" ]; then
update_steamcmd.sh
-fi
\ No newline at end of file
+fi
+
+core_exit.sh
\ No newline at end of file
diff --git a/lgsm/functions/update_steamcmd.sh b/lgsm/functions/update_steamcmd.sh
index 08bf9cd32..da2969356 100644
--- a/lgsm/functions/update_steamcmd.sh
+++ b/lgsm/functions/update_steamcmd.sh
@@ -6,9 +6,8 @@ lgsm_version="210516"
# Description:Handles updating using steamCMD.
-fn_steamcmd_dl(){
- cd "${rootdir}"
- cd "steamcmd"
+fn_update_steamcmd_dl(){
+ cd "${rootdir}/steamcmd"
# Detects if unbuffer command is available.
if [ $(command -v stdbuf) ]; then
@@ -83,7 +82,7 @@ fn_appmanifest_check(){
fi
}
-fn_logupdaterequest(){
+fn_update_request_log(){
# Checks for server update requests from server logs.
fn_print_dots "Checking for update: Server logs"
fn_script_log "Checking for update: Server logs"
@@ -104,11 +103,13 @@ fn_logupdaterequest(){
unset updateonstart
check_status.sh
if [ "${status}" != "0" ]; then
+ exitbypass=1
command_stop.sh
- update_dl.sh
+ fn_update_steamcmd_dl
+ exitbypass=1
command_start.sh
else
- update_dl.sh
+ fn_update_steamcmd_dl
fi
alert="update"
alert.sh
@@ -118,7 +119,7 @@ fn_logupdaterequest(){
fi
}
-fn_steamcmdcheck(){
+fn_update_steamcmd_check(){
fn_appmanifest_check
# Checks for server update from SteamCMD
fn_print_dots "Checking for update: SteamCMD"
@@ -183,11 +184,11 @@ fn_steamcmdcheck(){
if [ "${status}" != "0" ]; then
exitbypass=1
command_stop.sh
- fn_steamcmd_dl
+ fn_update_steamcmd_dl
exitbypass=1
command_start.sh
else
- fn_steamcmd_dl
+ fn_update_steamcmd_dl
fi
alert="update"
alert.sh
@@ -205,4 +206,21 @@ fn_steamcmdcheck(){
}
-fn_steamcmdcheck
\ No newline at end of file
+if [ "${engine}" == "goldsource" ]||[ "${forceupdate}" == "1" ]; then
+ # Goldsource servers bypass checks as fn_update_steamcmd_check does not work for appid 90 servers.
+ # forceupdate bypasses checks
+ check_status.sh
+ if [ "${status}" != "0" ]; then
+ exitbypass=1
+ command_stop.sh
+ fn_update_steamcmd_dl
+ exitbypass=1
+ command_start.sh
+ else
+ fn_update_steamcmd_dl
+ fi
+else
+ fn_update_request_log
+ fn_update_steamcmd_check
+fi
+core_exit.sh
\ No newline at end of file
diff --git a/lgsm/functions/update_ts3.sh b/lgsm/functions/update_ts3.sh
index 6d609e53d..a1ee4b913 100644
--- a/lgsm/functions/update_ts3.sh
+++ b/lgsm/functions/update_ts3.sh
@@ -12,137 +12,135 @@ fn_update_ts3_dl(){
}
-fn_update_ts3_check(){
- # Checks for server update from teamspeak.com using a mirror dl.4players.de.
- fn_print_dots "Checking for update: teamspeak.com"
- fn_script_log_info "Checking for update: teamspeak.com"
+# Checks for server update from teamspeak.com using a mirror dl.4players.de.
+fn_print_dots "Checking for update: teamspeak.com"
+fn_script_log_info "Checking for update: teamspeak.com"
+sleep 1
+
+# Gets currentbuild info
+# Checks currentbuild info is available, if fails a server restart will be forced to generate logs.
+if [ -z "$(find ./* -name 'ts3server*_0.log')" ]; then
+ fn_print_fail "Checking for update: teamspeak.com"
sleep 1
-
- # Gets currentbuild info
- # Checks currentbuild info is available, if fails a server restart will be forced to generate logs.
+ fn_print_fail_nl "Checking for update: teamspeak.com: No logs with server version found"
+ fn_script_log_warn "Checking for update: teamspeak.com: No logs with server version found"
+ sleep 2
+ fn_print_info_nl "Checking for update: teamspeak.com: Forcing server restart"
+ fn_script_log_warn "Checking for update: teamspeak.com: Forcing server restart"
+ sleep 2
+ exitbypass=1
+ command_stop.sh
+ exitbypass=1
+ command_start.sh
+ sleep 1
+ # Check again and exit on failure.
if [ -z "$(find ./* -name 'ts3server*_0.log')" ]; then
- fn_print_fail "Checking for update: teamspeak.com"
- sleep 1
- fn_print_fail_nl "Checking for update: teamspeak.com: No logs with server version found"
- fn_script_log_warn "Checking for update: teamspeak.com: No logs with server version found"
- sleep 2
- fn_print_info_nl "Checking for update: teamspeak.com: Forcing server restart"
- fn_script_log_warn "Checking for update: teamspeak.com: Forcing server restart"
- sleep 2
- exitbypass=1
- command_stop.sh
- exitbypass=1
- command_start.sh
- sleep 1
- # Check again and exit on failure.
- if [ -z "$(find ./* -name 'ts3server*_0.log')" ]; then
- fn_print_fail_nl "Checking for update: teamspeak.com: Still No logs with server version found"
- fn_script_log_fatal "Checking for update: teamspeak.com: Still No logs with server version found"
- core_exit.sh
- fi
+ fn_print_fail_nl "Checking for update: teamspeak.com: Still No logs with server version found"
+ fn_script_log_fatal "Checking for update: teamspeak.com: Still No logs with server version found"
+ core_exit.sh
+ fi
+fi
+
+currentbuild=$(cat $(find ./* -name 'ts3server*_0.log' 2> /dev/null | sort | egrep -E -v '${rootdir}/.ts3version' | tail -1) | egrep -o 'TeamSpeak 3 Server ((\.)?[0-9]{1,3}){1,3}\.[0-9]{1,3}' | egrep -o '((\.)?[0-9]{1,3}){1,3}\.[0-9]{1,3}')
+
+# Gets the teamspeak server architecture.
+info_distro.sh
+if [ "${arch}" == "x86_64" ]; then
+ ts3arch="amd64"
+elif [ "${arch}" == "i386" ]||[ "${arch}" == "i686" ]; then
+ ts3arch="x86"
+else
+ echo ""
+ fn_print_failure "unknown or unsupported architecture: ${arch}"
+ fn_script_log_fatal "unknown or unsupported architecture: ${arch}"
+ core_exit.sh
+fi
+
+# Gets availablebuild info.
+
+# Grabs all version numbers but not in correct order.
+wget "http://dl.4players.de/ts/releases/?C=M;O=D" -q -O -| grep -i dir | egrep -o '.*\/<\/a>' | egrep -o '[0-9\.?]+'|uniq > .ts3_version_numbers_unsorted.tmp
+
+# Sort version numbers
+cat .ts3_version_numbers_unsorted.tmp | sort -r --version-sort -o .ts3_version_numbers_sorted.tmp
+
+# Finds directory with most recent server version.
+while read ts3_version_number; do
+ wget --spider -q "http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2"
+ if [ $? -eq 0 ]; then
+ availablebuild="${ts3_version_number}"
+ # Break while-loop, if the latest release could be found.
+ break
fi
+done < .ts3_version_numbers_sorted.tmp
- currentbuild=$(cat $(find ./* -name 'ts3server*_0.log' 2> /dev/null | sort | egrep -E -v '${rootdir}/.ts3version' | tail -1) | egrep -o 'TeamSpeak 3 Server ((\.)?[0-9]{1,3}){1,3}\.[0-9]{1,3}' | egrep -o '((\.)?[0-9]{1,3}){1,3}\.[0-9]{1,3}')
+# Tidy up
+rm -f ".ts3_version_numbers_unsorted.tmp"
+rm -f ".ts3_version_numbers_sorted.tmp"
- # Gets the teamspeak server architecture.
- info_distro.sh
- if [ "${arch}" == "x86_64" ]; then
- ts3arch="amd64"
- elif [ "${arch}" == "i386" ]||[ "${arch}" == "i686" ]; then
- ts3arch="x86"
- else
- echo ""
- fn_print_failure "unknown or unsupported architecture: ${arch}"
- fn_script_log_fatal "unknown or unsupported architecture: ${arch}"
- core_exit.sh
- fi
+# Checks availablebuild info is available
+if [ -z "${availablebuild}" ]; then
+ fn_print_fail "Checking for update: teamspeak.com"
+ sleep 1
+ fn_print_fail "Checking for update: teamspeak.com: Not returning version info"
+ fn_script_log_fatal "Failure! Checking for update: teamspeak.com: Not returning version info"
+ core_exit.sh
+else
+ fn_print_ok "Checking for update: teamspeak.com"
+ fn_script_log_pass "Checking for update: teamspeak.com"
+ sleep 1
+fi
- # Gets availablebuild info.
-
- # Grabs all version numbers but not in correct order.
- wget "http://dl.4players.de/ts/releases/?C=M;O=D" -q -O -| grep -i dir | egrep -o '.*\/<\/a>' | egrep -o '[0-9\.?]+'|uniq > .ts3_version_numbers_unsorted.tmp
-
- # Sort version numbers
- cat .ts3_version_numbers_unsorted.tmp | sort -r --version-sort -o .ts3_version_numbers_sorted.tmp
-
- # Finds directory with most recent server version.
- while read ts3_version_number; do
- wget --spider -q "http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2"
- if [ $? -eq 0 ]; then
- availablebuild="${ts3_version_number}"
- # Break while-loop, if the latest release could be found.
- break
- fi
- done < .ts3_version_numbers_sorted.tmp
-
- # Tidy up
- rm -f ".ts3_version_numbers_unsorted.tmp"
- rm -f ".ts3_version_numbers_sorted.tmp"
-
- # Checks availablebuild info is available
- if [ -z "${availablebuild}" ]; then
- fn_print_fail "Checking for update: teamspeak.com"
- sleep 1
- fn_print_fail "Checking for update: teamspeak.com: Not returning version info"
- fn_script_log_fatal "Failure! Checking for update: teamspeak.com: Not returning version info"
- core_exit.sh
- else
- fn_print_ok "Checking for update: teamspeak.com"
- fn_script_log_pass "Checking for update: teamspeak.com"
- sleep 1
- fi
+# Removes dots so if can compare version numbers
+currentbuilddigit=$(echo "${currentbuild}"|tr -cd '[:digit:]')
+availablebuilddigit=$(echo "${availablebuild}"|tr -cd '[:digit:]')
- # Removes dots so if can compare version numbers
- currentbuilddigit=$(echo "${currentbuild}"|tr -cd '[:digit:]')
- availablebuilddigit=$(echo "${availablebuild}"|tr -cd '[:digit:]')
-
- if [ "${currentbuilddigit}" -ne "${availablebuilddigit}" ]; then
- echo -e "\n"
- echo -e "Update available:"
- sleep 1
- echo -e " Current build: \e[0;31m${currentbuild} ${architecture}\e[0;39m"
- echo -e " Available build: \e[0;32m${availablebuild} ${architecture}\e[0;39m"
- echo -e ""
- sleep 1
- echo ""
- echo -en "Applying update.\r"
- sleep 1
- echo -en "Applying update..\r"
- sleep 1
- echo -en "Applying update...\r"
- sleep 1
- echo -en "\n"
- fn_script_log "Update available"
- fn_script_log "Current build: ${currentbuild}"
- fn_script_log "Available build: ${availablebuild}"
- fn_script_log "${currentbuild} > ${availablebuild}"
-
- unset updateonstart
-
- check_status.sh
- if [ "${status}" == "0" ]; then
- fn_update_ts3_dl
- exitbypass=1
- command_start.sh
- exitbypass=1
- command_stop.sh
- else
- exitbypass=1
- command_stop.sh
- fn_update_ts3_dl
- exitbypass=1
- command_start.sh
- fi
- alert="update"
- alert.sh
+if [ "${currentbuilddigit}" -ne "${availablebuilddigit}" ]; then
+ echo -e "\n"
+ echo -e "Update available:"
+ sleep 1
+ echo -e " Current build: \e[0;31m${currentbuild} ${architecture}\e[0;39m"
+ echo -e " Available build: \e[0;32m${availablebuild} ${architecture}\e[0;39m"
+ echo -e ""
+ sleep 1
+ echo ""
+ echo -en "Applying update.\r"
+ sleep 1
+ echo -en "Applying update..\r"
+ sleep 1
+ echo -en "Applying update...\r"
+ sleep 1
+ echo -en "\n"
+ fn_script_log "Update available"
+ fn_script_log "Current build: ${currentbuild}"
+ fn_script_log "Available build: ${availablebuild}"
+ fn_script_log "${currentbuild} > ${availablebuild}"
+
+ unset updateonstart
+
+ check_status.sh
+ if [ "${status}" == "0" ]; then
+ fn_update_ts3_dl
+ exitbypass=1
+ command_start.sh
+ exitbypass=1
+ command_stop.sh
else
- echo -e "\n"
- echo -e "No update available:"
- echo -e " Current version: \e[0;32m${currentbuild}\e[0;39m"
- echo -e " Available version: \e[0;32m${availablebuild}\e[0;39m"
- echo -e ""
- fn_print_ok_nl "No update available"
- fn_script_log_info "Current build: ${currentbuild}"
- fn_script_log_info "Available build: ${availablebuild}"
+ exitbypass=1
+ command_stop.sh
+ fn_update_ts3_dl
+ exitbypass=1
+ command_start.sh
fi
-}
+ alert="update"
+ alert.sh
+else
+ echo -e "\n"
+ echo -e "No update available:"
+ echo -e " Current version: \e[0;32m${currentbuild}\e[0;39m"
+ echo -e " Available version: \e[0;32m${availablebuild}\e[0;39m"
+ echo -e ""
+ fn_print_ok_nl "No update available"
+ fn_script_log_info "Current build: ${currentbuild}"
+ fn_script_log_info "Available build: ${availablebuild}"
+fi