install_ts3.sh 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #!/bin/bash
  2. # LGSM install_ts3.sh function
  3. # Author: Daniel Gibbs
  4. # Website: https://gameservermanagers.com
  5. local commandnane="INSTALL"
  6. local commandaction="Install"
  7. local selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
  8. info_distro.sh
  9. # Gets the teamspeak server architecture
  10. if [ "${arch}" == "x86_64" ]; then
  11. ts3arch="amd64"
  12. elif [ "${arch}" == "i386" ]||[ "${arch}" == "i686" ]; then
  13. ts3arch="x86"
  14. else
  15. fn_print_failure "${arch} is an unsupported architecture"
  16. exit 1
  17. fi
  18. # Grabs all version numbers but not in correct order
  19. 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
  20. # Sort version numbers
  21. cat .ts3_version_numbers_unsorted.tmp | sort -r --version-sort -o .ts3_version_numbers_sorted.tmp
  22. # Finds directory with most recent server version.
  23. while read ts3_version_number; do
  24. wget --spider -q "http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2"
  25. if [ $? -eq 0 ]; then
  26. availablebuild="${ts3_version_number}"
  27. # Break while-loop, if the latest release could be found
  28. break
  29. fi
  30. done < .ts3_version_numbers_sorted.tmp
  31. # Tidy up
  32. rm -f ".ts3_version_numbers_unsorted.tmp"
  33. rm -f ".ts3_version_numbers_sorted.tmp"
  34. # Checks availablebuild info is available
  35. if [ -z "${availablebuild}" ]; then
  36. fn_print_fail "Checking for update: teamspeak.com"
  37. sleep 1
  38. fn_print_fail "Checking for update: teamspeak.com: Not returning version info"
  39. sleep 2
  40. exit 1
  41. fi
  42. echo ""
  43. echo "Installing ${gamename} Server"
  44. echo "================================="
  45. cd "${rootdir}"
  46. echo -e "downloading teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2...\c"
  47. wget -N /dev/null http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2 2>&1 | grep -F HTTP | cut -c45-| uniq
  48. sleep 1
  49. echo -e "extracting teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2...\c"
  50. tar -xf "teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" 2> ".${servicename}-tar-error.tmp"
  51. local status=$?
  52. if [ ${status} -eq 0 ]; then
  53. echo "OK"
  54. else
  55. echo "FAIL - Exit status ${status}"
  56. sleep 1
  57. cat ".${servicename}-tar-error.tmp"
  58. rm ".${servicename}-tar-error.tmp"
  59. exit $?
  60. fi
  61. echo -e "copying to ${filesdir}...\c"
  62. cp -R "${rootdir}/teamspeak3-server_linux_${ts3arch}/"* "${filesdir}" 2> ".${servicename}-cp-error.tmp"
  63. local status=$?
  64. if [ ${status} -eq 0 ]; then
  65. echo "OK"
  66. else
  67. echo "FAIL - Exit status ${status}"
  68. sleep 1
  69. cat ".${servicename}-cp-error.tmp"
  70. rm ".${servicename}-cp-error.tmp"
  71. exit $?
  72. fi
  73. rm -f "teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2"
  74. rm -rf "${rootdir}/teamspeak3-server_linux_${ts3arch}"