فهرست منبع

feat(ts3server): deprecate legacy ts3 update functions (#2206)

* feat(ts3server): deprecate legacy ts3 update functions
* fix(ts3server): bug fix currentbuild and minor refactor
Daniel Gibbs 7 سال پیش
والد
کامیت
d5d0116b28
1فایلهای تغییر یافته به همراه15 افزوده شده و 74 حذف شده
  1. 15 74
      lgsm/functions/update_ts3.sh

+ 15 - 74
lgsm/functions/update_ts3.sh

@@ -8,22 +8,13 @@ local commandname="UPDATE"
 local commandaction="Update"
 local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 
-fn_update_ts3_dl_legacy(){
-	fn_fetch_file "http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" "${tmpdir}" "teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2"
-	fn_dl_extract "${tmpdir}" "teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" "${tmpdir}"
-	echo -e "copying to ${serverfiles}...\c"
-	fn_script_log "Copying to ${serverfiles}"
-	cp -R "${tmpdir}/teamspeak3-server_linux_${ts3arch}/"* "${serverfiles}"
-	local exitcode=$?
-	if [ "${exitcode}" == "0" ]; then
-		fn_print_ok_eol_nl
-	else
-		fn_print_fail_eol_nl
-	fi
-}
-
 fn_update_ts3_dl(){
-	latestts3releaselink=$(${curlpath} -s 'https://www.teamspeak.com/versions/server.json' | jq -r '.linux.x86_64.mirrors."teamspeak.com"')
+	info_distro.sh
+	if [ "${ts3arch}" == "x86_64" ]; then
+		latestts3releaselink=$(${curlpath} -s 'https://www.teamspeak.com/versions/server.json' | jq -r '.linux.x86_64.mirrors."teamspeak.com"')
+	elif [ "${ts3arch}" == "x86" ]; then
+		latestts3releaselink=$(${curlpath} -s 'https://www.teamspeak.com/versions/server.json' | jq -r '.linux.x86.mirrors."teamspeak.com"')
+	fi
 	fn_fetch_file "${latestts3releaselink}" "${tmpdir}" "teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2"
 	fn_dl_extract "${tmpdir}" "teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" "${tmpdir}"
 	echo -e "copying to ${serverfiles}...\c"
@@ -40,7 +31,7 @@ fn_update_ts3_dl(){
 fn_update_ts3_currentbuild(){
 	# Gets current build info
 	# Checks if current build info is available. If it fails, then a server restart will be forced to generate logs.
-	if [ -z "$(find ./* -name 'ts3server*_0.log')" ]; then
+	if [ ! -d "${serverfiles}/logs" ]||[ -z "$(find "${serverfiles}/logs/"* -name 'ts3server*_0.log' 2> /dev/null)" ]; then
 		fn_print_error "Checking for update: teamspeak.com"
 		sleep 0.5
 		fn_print_error_nl "Checking for update: teamspeak.com: No logs with server version found"
@@ -55,7 +46,7 @@ fn_update_ts3_currentbuild(){
 		command_start.sh
 		sleep 0.5
 		# Check again and exit on failure.
-		if [ -z "$(find ./* -name 'ts3server*_0.log')" ]; then
+		if [ ! -d "${serverfiles}/logs" ]||[ -z "$(find "${serverfiles}/logs/"* -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
@@ -63,7 +54,7 @@ fn_update_ts3_currentbuild(){
 	fi
 
 	# Get current build from logs
-	currentbuild=$(cat $(find ./* -name "ts3server*_0.log" 2> /dev/null | sort | grep -Ev "${rootdir}/.ts3version" | tail -1) | grep -Eo "TeamSpeak 3 Server ((\.)?[0-9]{1,3}){1,3}\.[0-9]{1,3}" | grep -Eo "((\.)?[0-9]{1,3}){1,3}\.[0-9]{1,3}" | sort -V | tail -1)
+	currentbuild="$(cat "$(find "${serverfiles}/logs/"* -name "ts3server*_0.log" 2> /dev/null | sort | tail -1)" | grep -Eo "TeamSpeak 3 Server ((\.)?[0-9]{1,3}){1,3}\.[0-9]{1,3}" | grep -Eo "((\.)?[0-9]{1,3}){1,3}\.[0-9]{1,3}" | sort -V)"
 	if [ -z "${currentbuild}" ]; then
 		fn_print_error_nl "Checking for update: teamspeak.com: Current build version not found"
 		fn_script_log_error "Checking for update: teamspeak.com: Current build version not found"
@@ -74,7 +65,7 @@ fn_update_ts3_currentbuild(){
 		command_stop.sh
 		exitbypass=1
 		command_start.sh
-		currentbuild=$(cat $(find ./* -name "ts3server*_0.log" 2> /dev/null | sort | grep -Ev "${rootdir}/.ts3version" | tail -1) | grep -Eo "TeamSpeak 3 Server ((\.)?[0-9]{1,3}){1,3}\.[0-9]{1,3}" | grep -Eo "((\.)?[0-9]{1,3}){1,3}\.[0-9]{1,3}")
+		currentbuild="$(cat "$(find "${serverfiles}/logs/"* -name "ts3server*_0.log" 2> /dev/null | sort | tail -1)" | grep -Eo "TeamSpeak 3 Server ((\.)?[0-9]{1,3}){1,3}\.[0-9]{1,3}" | grep -Eo "((\.)?[0-9]{1,3}){1,3}\.[0-9]{1,3}" | sort -V)"
 		if [ -z "${currentbuild}" ]; then
 			fn_print_fail_nl "Checking for update: teamspeak.com: Current build version still not found"
 			fn_script_log_fatal "Checking for update: teamspeak.com: Current build version still not found"
@@ -98,7 +89,6 @@ else
 fi
 }
 
-
 fn_update_ts3_availablebuild(){
 	# Gets latest build info.
 	if [ "${arch}" == "x86_64" ]; then
@@ -108,11 +98,11 @@ fn_update_ts3_availablebuild(){
 	fi
 	ts3_version_number="${availablebuild}"
 	# Checks if availablebuild variable has been set
-	if [ -z "${availablebuild}" ]||[ "${availablebuild}" == "null" ]; then
+	if [ -v "${availablebuild}" ]||[ "${availablebuild}" == "null" ]; then
 		fn_print_fail "Checking for update: teamspeak.com"
 		sleep 0.5
 		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"
+		fn_script_log_fatal "Checking for update: teamspeak.com: Not returning version info"
 		core_exit.sh
 	elif [ "${installer}" == "1" ]; then
 		:
@@ -123,45 +113,6 @@ fn_update_ts3_availablebuild(){
 	fi
 }
 
-fn_update_ts3_availablebuild_legacy(){
-	# Gets latest build 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 | grep -Eo '<a href=\".*\/\">.*\/<\/a>' | grep -Eo '[0-9\.?]+' | uniq > "${tmpdir}/.ts3_version_numbers_unsorted.tmp"
-
-	# Sort version numbers
-	cat "${tmpdir}/.ts3_version_numbers_unsorted.tmp" | sort -r --version-sort -o "${tmpdir}/.ts3_version_numbers_sorted.tmp"
-
-	# Finds directory with most recent server version.
-	while read -r 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 < "${tmpdir}/.ts3_version_numbers_sorted.tmp"
-
-	# Tidy up
-	rm -f "${tmpdir}/.ts3_version_numbers_unsorted.tmp"
-	rm -f "${tmpdir}/.ts3_version_numbers_sorted.tmp"
-
-	# Checks availablebuild info is available
-	if [ -z "${availablebuild}" ]; then
-		fn_print_fail "Checking for update: teamspeak.com"
-		sleep 0.5
-		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
-	elif [ "${installer}" == "1" ]; then
-		:
-	else
-		fn_print_ok "Checking for update: teamspeak.com"
-		fn_script_log_pass "Checking for update: teamspeak.com"
-		sleep 0.5
-	fi
-}
-
 fn_update_ts3_compare(){
 	# Removes dots so if can compare version numbers
 	currentbuilddigit=$(echo "${currentbuild}" | tr -cd '[:digit:]')
@@ -219,24 +170,14 @@ fn_update_ts3_compare(){
 
 fn_update_ts3_arch
 if [ "${installer}" == "1" ]; then
-	# if jq available uses json update checker
-	if [ "$(command -v jq >/dev/null 2>&1)" ]; then
-		fn_update_ts3_availablebuild
-		fn_update_ts3_dl
-	else
-		fn_update_ts3_availablebuild_legacy
-		fn_update_ts3_dl_legacy
-	fi
+	fn_update_ts3_availablebuild
+	fn_update_ts3_dl
 else
 	# 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 0.5
 	fn_update_ts3_currentbuild
-	if [ "$(command -v jq >/dev/null 2>&1)" ]; then
-		fn_update_ts3_availablebuild
-	else
-		fn_update_ts3_availablebuild_legacy
-	fi
+	fn_update_ts3_availablebuild
 	fn_update_ts3_compare
 fi