Browse Source

Added ts3server installer

ts3server now has an installer
Daniel Gibbs 11 years ago
parent
commit
73a63afa93
5 changed files with 61 additions and 31 deletions
  1. 6 1
      functions/fn_functions
  2. 2 2
      functions/fn_getopt
  3. 13 1
      functions/fn_install_config
  4. 29 20
      functions/fn_install_ts3
  5. 11 7
      functions/fn_start

+ 6 - 1
functions/fn_functions

@@ -2,7 +2,7 @@
 # LGSM fn_functions function
 # Author: Daniel Gibbs
 # Website: http://gameservermanagers.com
-# Version: 190515
+# Version: 240515
 
 # Description: Defines all functions to allow download and execution of functions using fn_runfunction.
 # This function is called first before any other function. Without this file other functions would not load.
@@ -253,6 +253,11 @@ functionfile="${FUNCNAME}"
 fn_runfunction
 }
 
+fn_install_ts3(){
+functionfile="${FUNCNAME}"
+fn_runfunction
+}
+
 fn_install_ut2k4(){
 functionfile="${FUNCNAME}"
 fn_runfunction

+ 2 - 2
functions/fn_getopt

@@ -2,7 +2,7 @@
 # LGSM fn_getopt function
 # Author: Daniel Gibbs
 # Website: http://gameservermanagers.com
-# Version: 190515
+# Version: 240515
 
 # Description: getopt arguments.
 
@@ -74,7 +74,7 @@ case "$getopt" in
 	auto-install)
 		fn_autoinstall;;
 	*)
-		echo "Usage: $0 {start|stop|restart|update|update-funtions|monitor|email-test|details|backup}"
+		echo "Usage: $0 {start|stop|restart|update|update-funtions|monitor|email-test|details|backup|install|auto-install}"
 		exit 1;;
 esac
 exit

+ 13 - 1
functions/fn_install_config

@@ -2,7 +2,7 @@
 # LGSM fn_server function
 # Author: Daniel Gibbs
 # Website: http://gameservermanagers.com
-# Version: 120515
+# Version: 240515
 
 fn_arma3config(){
 mkdir -pv "${servercfgdir}"
@@ -87,6 +87,16 @@ sed -i "s/\"rconpassword\"/\"${rconpass}\"/g" "${servercfgfullpath}"
 echo ""
 }
 
+fn_ts3config(){
+echo  "Creating blank ${servercfg}"
+sleep 1
+echo  "${servercfg} can remain blank by default."
+sleep 1
+echo  "${servercfg} is located in ${servercfgfullpath}."
+sleep 1
+touch "${servercfgfullpath}"
+}
+
 fn_ut99config(){
 echo "${defaultcfg} > ${servercfgfullpath}"
 tr -d '\r' < "${defaultcfg}" > "${servercfgfullpath}"
@@ -245,6 +255,8 @@ elif [ "${gamename}" == "Serious Sam 3: BFE" ]; then
 	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/SeriousSam3BFE/cfg/lgsm-default.ini 2>&1 | grep -F HTTP | cut -c45- | uniq
 	sleep 1
 	fn_serious3config
+elif [ "${gamename}" == "Teamspeak 3" ]; then
+	fn_ts3config
 elif [ "${gamename}" == "Team Fortress 2" ]; then
 	echo -e "downloading lgsm-default.cfg...\c"
 	wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/TeamFortress2/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq

+ 29 - 20
functions/fn_install_ts3

@@ -2,11 +2,18 @@
 # LGSM fn_install_ts3 function
 # Author: Daniel Gibbs
 # Website: http://gameservermanagers.com
-# Version: 120515
+# Version: 240515
 
-fn_details_config
+fn_details_distro
 # Gets the teamspeak server architecture
-ts3arch=${arch}
+if [ "${arch}" == "x86_64" ]; then
+	ts3arch="amd64"
+elif [ "${arch}" == "i386" ]; then
+	ts3arch="x86"
+else
+	fn_printfailure "${arch} is an unsupported architecture"
+	exit
+fi
 
 # Grabs all version numbers not in correct order
 wget "http://dl.4players.de/ts/releases/?C=M;O=D" -q -O -| grep -i dir | egrep -o '<a href=\".*\/\">.*\/<\/a>' | egrep -o '[0-9\.?]+'|uniq > .ts3_version_numbers_unsorted.tmp
@@ -22,6 +29,7 @@ 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.gz"
 	if [[ $? == 0 ]]; then
 		availablebuild="${ts3_version_number}"
+		echo "Latest Build: ${availablebuild}"
 		# Break while-loop, if the latest release could be found
 		echo "http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-66server_linux-${ts3arch}-${ts3_version_number}.tar.g"
 		break
@@ -34,51 +42,52 @@ rm -f .ts3_version_numbers.tmp
 # Checks availablebuild info is available
 if [ -z "${availablebuild}" ]; then
 	fn_printfail "Checking for update: teamspeak.com"
-	fn_scriptlog "Checking for update: teamspeak.com"
 	sleep 1
 	fn_printfail "Checking for update: teamspeak.com: Not returning version info"
-	fn_scriptlog "Failure! Checking for update: teamspeak.com: Not returning version info"
 	sleep 2
 	exit
 fi
 
 cd "${rootdir}"
+mkdir "${filesdir}"
 echo -e "downloading teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz...\c"
-fn_scriptlog "Downloading teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz"
 wget -N /dev/null http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux-${ts3arch}-${ts3_version_number}.tar.gz 2>&1 | grep -F HTTP | cut -c45-| uniq
 sleep 1
 echo -e "extracting teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz...\c"
-fn_scriptlog "Extracting teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz"
-tar -xf "teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz" 2> "${scriptlogdir}/.${servicename}-tar-error.tmp"
+tar -xf "teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz" 2> ".${servicename}-tar-error.tmp"
 local status=$?
 if [ ${status} -eq 0 ]; then
 	echo "OK"
 else
 	echo "FAIL - Exit status ${status}"
-	fn_scriptlog "Failed to extract - Exit status ${status}"
 	sleep 1
-	cat "${scriptlogdir}/.${servicename}-tar-error.tmp"
-	cat "${scriptlogdir}/.${servicename}-tar-error.tmp" >> "${scriptlog}"
-	rm "${scriptlogdir}/.${servicename}-tar-error.tmp"
-	fn_scriptlog "Failure! Unable to update"
+	cat ".${servicename}-tar-error.tmp"
+	rm ".${servicename}-tar-error.tmp"
 	exit
 fi
 echo -e "copying to ${filesdir}...\c"
-fn_scriptlog "Copying to ${filesdir}"
-cp -R "${rootdir}/teamspeak3-server_linux-${ts3arch}/*" "${filesdir}" 2> "${scriptlogdir}/.${servicename}-cp-error.tmp"
+cp -R "${rootdir}/teamspeak3-server_linux-${ts3arch}/"* "${filesdir}" 2> ".${servicename}-cp-error.tmp"
 local status=$?
 if [ ${status} -eq 0 ]; then
 	echo "OK"
 else
 	echo "FAIL - Exit status ${status}"
-	fn_scriptlog "Failed to copy - Exit status ${status}"
 	sleep 1
-	cat "${scriptlogdir}/.${servicename}-cp-error.tmp"
-	cat "${scriptlogdir}/.${servicename}-cp-error.tmp" >> "${scriptlog}"
-	rm "${scriptlogdir}/.${servicename}-cp-error.tmp"
-	fn_scriptlog "Failure! Unable to update"
+	cat ".${servicename}-cp-error.tmp"
+	rm ".${servicename}-cp-error.tmp"
 	exit
 fi
 rm -f teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz
 rm -rf "${rootdir}/teamspeak3-server_linux-${ts3arch}"
 
+## Get privilege key
+echo ""
+echo "Getting privilege key"
+echo "================================="
+sleep 1
+echo "IMPORANT! Save these details for later."
+sleep 1
+cd "${executabledir}"
+./ts3server_startscript.sh start
+sleep 5
+./ts3server_startscript.sh stop

+ 11 - 7
functions/fn_start

@@ -2,7 +2,7 @@
 # LGSM fn_start function
 # Author: Daniel Gibbs
 # Website: http://gameservermanagers.com
-# Version: 090515
+# Version: 240515
 
 # Description: Starts the server.
 
@@ -23,13 +23,17 @@ fi
 if [ ! -e "${servercfgfullpath}" ]; then
 	fn_printwarn "${servercfgfullpath} is missing"
 	fn_scriptlog "${servercfgfullpath} is missing"
-	sleep 1
-	fn_printinfo "Creating blank ${servercfgfullpath}"
-	fn_scriptlog "Creating blank ${servercfgfullpath}"
-	sleep 1
-	fn_printinfo "${servercfgfullpath} can remain blank by default."
+	sleep 2
+	echo -en "\n"
+	echo  "	* Creating blank ${servercfg}"
+	fn_scriptlog "Creating blank ${servercfg}"
+	sleep 2
+	echo  "	* ${servercfg} can remain blank by default."
 	fn_scriptlog "${servercfgfullpath} can remain blank by default."
-	sleep 1
+	sleep 2
+	echo  "	* ${servercfg} is located in ${servercfgfullpath}."
+	fn_scriptlog "${servercfg} is located in ${servercfgfullpath}."
+	sleep 5
 	touch "${servercfgfullpath}"
 fi
 fn_logs