4
0

fn_install_ts3 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #!/bin/bash
  2. # LGSM fn_install_ts3 function
  3. # Author: Daniel Gibbs
  4. # Website: http://gameservermanagers.com
  5. lgsm_version="061115"
  6. fn_details_distro
  7. # Gets the teamspeak server architecture
  8. if [ "${arch}" == "x86_64" ]; then
  9. ts3arch="amd64"
  10. elif [ "${arch}" == "i386" ]||[ "${arch}" == "i686" ]; then
  11. ts3arch="x86"
  12. else
  13. fn_printfailure "${arch} is an unsupported architecture"
  14. exit 1
  15. fi
  16. # Grabs all version numbers not in correct order
  17. 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
  18. # removes digits to allow sorting of numbers
  19. cat .ts3_version_numbers_unsorted.tmp |tr -cd '[:digit:][*\n]' > .ts3_version_numbers_digit.tmp
  20. # Sorts numbers in to correct order
  21. # merges two files in to one with two columns sorts the numbers in to order then only outputs the second to the ts3_version_numbers.tmp
  22. paste .ts3_version_numbers_digit.tmp .ts3_version_numbers_unsorted.tmp |sort -rn|awk '{ print $2 }' > .ts3_version_numbers.tmp
  23. # Finds directory with most recent server version.
  24. while read ts3_version_number; do
  25. wget --spider -q "http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux-${ts3arch}-${ts3_version_number}.tar.gz"
  26. if [[ $? == 0 ]]; then
  27. availablebuild="${ts3_version_number}"
  28. echo "Latest Build: ${availablebuild}"
  29. # Break while-loop, if the latest release could be found
  30. echo "http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-66server_linux-${ts3arch}-${ts3_version_number}.tar.g"
  31. break
  32. fi
  33. done < .ts3_version_numbers.tmp
  34. rm -f .ts3_version_numbers_digit.tmp
  35. rm -f .ts3_version_numbers_unsorted.tmp
  36. rm -f .ts3_version_numbers.tmp
  37. # Checks availablebuild info is available
  38. if [ -z "${availablebuild}" ]; then
  39. fn_printfail "Checking for update: teamspeak.com"
  40. sleep 1
  41. fn_printfail "Checking for update: teamspeak.com: Not returning version info"
  42. sleep 2
  43. exit 1
  44. fi
  45. cd "${rootdir}"
  46. mkdir "${filesdir}"
  47. echo -e "downloading teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz...\c"
  48. 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
  49. sleep 1
  50. echo -e "extracting teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz...\c"
  51. tar -xf "teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz" 2> ".${servicename}-tar-error.tmp"
  52. local status=$?
  53. if [ ${status} -eq 0 ]; then
  54. echo "OK"
  55. else
  56. echo "FAIL - Exit status ${status}"
  57. sleep 1
  58. cat ".${servicename}-tar-error.tmp"
  59. rm ".${servicename}-tar-error.tmp"
  60. exit $?
  61. fi
  62. echo -e "copying to ${filesdir}...\c"
  63. cp -R "${rootdir}/teamspeak3-server_linux-${ts3arch}/"* "${filesdir}" 2> ".${servicename}-cp-error.tmp"
  64. local status=$?
  65. if [ ${status} -eq 0 ]; then
  66. echo "OK"
  67. else
  68. echo "FAIL - Exit status ${status}"
  69. sleep 1
  70. cat ".${servicename}-cp-error.tmp"
  71. rm ".${servicename}-cp-error.tmp"
  72. exit $?
  73. fi
  74. rm -f teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz
  75. rm -rf "${rootdir}/teamspeak3-server_linux-${ts3arch}"
  76. ## Get privilege key
  77. echo ""
  78. echo "Getting privilege key"
  79. echo "================================="
  80. sleep 1
  81. echo "IMPORANT! Save these details for later."
  82. sleep 1
  83. cd "${executabledir}"
  84. ./ts3server_startscript.sh start
  85. sleep 5
  86. ./ts3server_startscript.sh stop