Browse Source

Merging ut99server files in to install_server_files

Daniel Gibbs 10 years ago
parent
commit
15f99b7076
3 changed files with 111 additions and 15 deletions
  1. 2 3
      functions/command_install.sh
  2. 0 12
      functions/install_dl_ut99.sh
  3. 109 0
      functions/install_server_files.sh

+ 2 - 3
functions/command_install.sh

@@ -2,7 +2,7 @@
 # LGSM fn_install function
 # Author: Daniel Gibbs
 # Website: http://gameservermanagers.com
-lgsm_version="271215"
+lgsm_version="200216"
 
 function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 
@@ -17,8 +17,7 @@ if [ "${gamename}" == "Unreal Tournament 2004" ]; then
 	install_ut2k4.sh
 	install_ut2k4_key.sh
 elif [ "${gamename}" == "Unreal Tournament 99" ]; then
-	install_dl_ut99.sh
-	install_ut99.sh
+	install_server_files.sh
 elif [ "${gamename}" == "Teamspeak 3" ]; then
 	install_ts3.sh
 elif [ ! -z "${appid}" ]; then

+ 0 - 12
functions/install_dl_ut99.sh

@@ -1,12 +0,0 @@
-#!/bin/bash
-# LGSM install_dl_ut99.sh function
-# Author: Daniel Gibbs
-# Website: http://gameservermanagers.com
-lgsm_version="050216"
-
-echo ""
-echo "Downloading Server Files"
-echo "================================="
-sleep 1
-fn_fetch_file "http://gameservermanagers.com/files/ut-server-451-complete.tar.bz2" "${lgsmdir}/tmp" "ut-server-451-complete.tar.bz2" "norun" "noforce" "e623fdff5ed600a9bfccab852e18d34d"
-fn_dl_extract "${lgsmdir}/tmp" "ut-server-451-complete.tar.bz2" "${filesdir}"

+ 109 - 0
functions/install_server_files.sh

@@ -0,0 +1,109 @@
+#!/bin/bash
+# LGSM install_server_files.sh function
+# Author: Daniel Gibbs
+# Website: http://gameservermanagers.com
+lgsm_version="050216"
+
+
+fn_install_server_files(){
+if [ "${gamename}" == "Unreal Tournament 99" ]; then
+	fileurl="http://gameservermanagers.com/files/ut-server-451-complete.tar.bz2"; filedir="${lgsmdir}/tmp"; filename="ut-server-451-complete.tar.bz2"; run="norun"; force="noforce"; md5="e623fdff5ed600a9bfccab852e18d34d"
+fi
+fn_fetch_file "${fileurl}" "${filedir}" "${filename}" "${run}" "${force}" "${md5}"
+fn_dl_extract "${filedir}" "${filename}" "${filesdir}"
+}
+
+#!/bin/bash
+# LGSM install_serverfiles.sh function
+# Author: Daniel Gibbs
+# Website: http://gameservermanagers.com
+lgsm_version="271215"
+
+fn_install_server_files_steamcmd(){
+check.sh
+mkdir -pv "${filesdir}"
+counter="0"
+while [ "${counter}" == "0" ]||[ "$(grep -wc 0x402 .install_serverfiles.sh.tmp)" -ge "1" ]||[ "$(grep -wc 0x406 .install_serverfiles.sh.tmp)" -ge "1" ]||[ "$(grep -wc 0x6 .install_serverfiles.sh.tmp)" -ge "1" ]||[ "$(grep -wc 0x106 .install_serverfiles.sh.tmp)" -ge "1" ]; do
+	counter=$((counter+1))
+	cd "${rootdir}/steamcmd"
+	if [ "${counter}" -le "10" ]; then
+		# Attempt 1-4: Standard attempt
+		# Attempt 5-6: Validate attempt
+		# Attempt 7-8: Validate, delete long name dir
+		# Attempt 9-10: Validate, delete long name dir, re-download SteamCMD
+		# Attempt 11: Failure
+
+		if [ "${counter}" -ge "2" ]; then
+			fn_printwarningnl "SteamCMD did not complete the download, retrying: Attempt ${counter}:"
+		fi
+
+		if [ "${counter}" -ge "7" ]; then
+			echo "Removing $(find ${filesdir} -type d -print0 | grep -Ez '[^/]{30}$')"
+			find ${filesdir} -type d -print0 | grep -Ez '[^/]{30}$' | xargs -0 rm -rf
+		fi
+		if [ "${counter}" -ge "9" ]; then
+			rm -rf "${rootdir}/steamcmd"
+			check_steamcmd.sh
+		fi
+
+		# Detects if unbuffer command is available.
+		if [ $(command -v unbuffer) ]; then
+			unbuffer=unbuffer
+		fi
+
+		if [ "${counter}" -le "4" ]; then
+			if [ "${engine}" == "goldsource" ]; then
+				${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_set_config 90 mod ${appidmod} +app_update "${appid}" +quit |tee .install_serverfiles.sh.tmp
+			else
+				${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" +quit |tee .install_serverfiles.sh.tmp
+			fi
+		elif [ "${counter}" -ge "5" ]; then
+			if [ "${engine}" == "goldsource" ]; then
+				${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_set_config 90 mod ${appidmod} +app_update "${appid}" -validate +quit |tee .install_serverfiles.sh.tmp
+			else
+				${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" -validate +quit |tee .install_serverfiles.sh.tmp
+			fi
+		fi
+	elif [ "${counter}" -ge "11" ]; then
+		fn_printfailurenl "SteamCMD did not complete the download, too many retrys"
+		break
+	fi
+
+done
+
+# Goldsource servers commonly fail to download all the server files required.
+# Validating a few of times may reduce the chance of this issue.
+if [ "${engine}" == "goldsource" ]; then
+	counter="0"
+	while [ "${counter}" -le "4" ]; do
+		counter=$((counter+1))
+		${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_set_config 90 mod ${appidmod} +app_update "${appid}" -validate +quit |tee .install_serverfiles.sh.tmp
+	done
+fi
+rm -f .install_serverfiles.sh.tmp
+}
+
+echo ""
+echo "Installing ${gamename} Server"
+echo "================================="
+sleep 1
+if [ -z "${appid}" ]; then
+	fn_install_server_files_steamcmd
+fi
+
+if [ ! -z "${appid}" ]||[ "${gamename}" == "GoldenEye: Source" ]; then
+	fn_install_server_files
+fi
+
+if [ -z "${autoinstall}" ]; then
+	echo ""
+	echo "================================="
+	while true; do
+	read -e -i "y" -p "Was the install successful? [Y/n]" yn
+		case $yn in
+			[Yy]* ) break;;
+			[Nn]* ) install_retry.sh;;
+			* ) echo "Please answer yes or no.";;
+		esac
+	done
+fi