install_ts3.sh 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #!/bin/bash
  2. # LGSM install_ts3.sh function
  3. # Author: Daniel Gibbs
  4. # Website: http://gameservermanagers.com
  5. lgsm_version="271215"
  6. info_distro.sh
  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 but 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. # Replaces dots with spaces to split up the number. e.g 3 0 12 1 is 3.0.12.1 this allows correct sorting
  19. cat .ts3_version_numbers_unsorted.tmp | tr "." " " > .ts3_version_numbers_digit.tmp
  20. # Sorts versions in to correct order
  21. # merges 2 files and orders by each column in order allowing these version numbers to be sorted in order
  22. paste .ts3_version_numbers_digit.tmp .ts3_version_numbers_unsorted.tmp | awk '{print $1,$2,$3,$4 " " $0;}'| sort -k1rn -k2rn -k3rn -k4rn | awk '{print $NF}' > .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.bz2"
  26. if [ $? -eq 0 ]; then
  27. availablebuild="${ts3_version_number}"
  28. # Break while-loop, if the latest release could be found
  29. break
  30. fi
  31. done < .ts3_version_numbers.tmp
  32. # tidy up
  33. rm -f ".ts3_version_numbers_digit.tmp"
  34. rm -f ".ts3_version_numbers_unsorted.tmp"
  35. rm -f ".ts3_version_numbers.tmp"
  36. # Checks availablebuild info is available
  37. if [ -z "${availablebuild}" ]; then
  38. fn_printfail "Checking for update: teamspeak.com"
  39. sleep 1
  40. fn_printfail "Checking for update: teamspeak.com: Not returning version info"
  41. sleep 2
  42. exit 1
  43. fi
  44. cd "${rootdir}"
  45. echo -e "downloading teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2...\c"
  46. 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
  47. sleep 1
  48. echo -e "extracting teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2...\c"
  49. tar -xf "teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" 2> ".${servicename}-tar-error.tmp"
  50. local status=$?
  51. if [ ${status} -eq 0 ]; then
  52. echo "OK"
  53. else
  54. echo "FAIL - Exit status ${status}"
  55. sleep 1
  56. cat ".${servicename}-tar-error.tmp"
  57. rm ".${servicename}-tar-error.tmp"
  58. exit $?
  59. fi
  60. echo -e "copying to ${filesdir}...\c"
  61. cp -R "${rootdir}/teamspeak3-server_linux_${ts3arch}/"* "${filesdir}" 2> ".${servicename}-cp-error.tmp"
  62. local status=$?
  63. if [ ${status} -eq 0 ]; then
  64. echo "OK"
  65. else
  66. echo "FAIL - Exit status ${status}"
  67. sleep 1
  68. cat ".${servicename}-cp-error.tmp"
  69. rm ".${servicename}-cp-error.tmp"
  70. exit $?
  71. fi
  72. rm -f "teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2"
  73. rm -rf "${rootdir}/teamspeak3-server_linux_${ts3arch}"