fn_install_ts3 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #!/bin/bash
  2. # LGSM fn_install_ts3 function
  3. # Author: Daniel Gibbs
  4. # Website: http://gameservermanagers.com
  5. # Version: 120515
  6. fn_details_config
  7. # Gets the teamspeak server architecture
  8. ts3arch=${arch}
  9. # Grabs all version numbers not in correct order
  10. 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
  11. # removes digits to allow sorting of numbers
  12. cat .ts3_version_numbers_unsorted.tmp |tr -cd "[:digit:][*\n]" > .ts3_version_numbers_digit.tmp
  13. # Sorts numbers in to correct order
  14. # 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
  15. paste .ts3_version_numbers_digit.tmp .ts3_version_numbers_unsorted.tmp |sort -rn|awk '{ print $2 }' > .ts3_version_numbers.tmp
  16. # Finds directory with most recent server version.
  17. while read ts3_version_number; do
  18. wget --spider -q "http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux-${ts3arch}-${ts3_version_number}.tar.gz"
  19. if [[ $? == 0 ]]; then
  20. availablebuild="${ts3_version_number}"
  21. # Break while-loop, if the latest release could be found
  22. echo "http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-66server_linux-${ts3arch}-${ts3_version_number}.tar.g"
  23. break
  24. fi
  25. done < .ts3_version_numbers.tmp
  26. rm -f .ts3_version_numbers_digit.tmp
  27. rm -f .ts3_version_numbers_unsorted.tmp
  28. rm -f .ts3_version_numbers.tmp
  29. # Checks availablebuild info is available
  30. if [ -z "${availablebuild}" ]; then
  31. fn_printfail "Checking for update: teamspeak.com"
  32. fn_scriptlog "Checking for update: teamspeak.com"
  33. sleep 1
  34. fn_printfail "Checking for update: teamspeak.com: Not returning version info"
  35. fn_scriptlog "Failure! Checking for update: teamspeak.com: Not returning version info"
  36. sleep 2
  37. exit
  38. fi
  39. cd "${rootdir}"
  40. echo -e "downloading teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz...\c"
  41. fn_scriptlog "Downloading teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz"
  42. 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
  43. sleep 1
  44. echo -e "extracting teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz...\c"
  45. fn_scriptlog "Extracting teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz"
  46. tar -xf "teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz" 2> "${scriptlogdir}/.${servicename}-tar-error.tmp"
  47. local status=$?
  48. if [ ${status} -eq 0 ]; then
  49. echo "OK"
  50. else
  51. echo "FAIL - Exit status ${status}"
  52. fn_scriptlog "Failed to extract - Exit status ${status}"
  53. sleep 1
  54. cat "${scriptlogdir}/.${servicename}-tar-error.tmp"
  55. cat "${scriptlogdir}/.${servicename}-tar-error.tmp" >> "${scriptlog}"
  56. rm "${scriptlogdir}/.${servicename}-tar-error.tmp"
  57. fn_scriptlog "Failure! Unable to update"
  58. exit
  59. fi
  60. echo -e "copying to ${filesdir}...\c"
  61. fn_scriptlog "Copying to ${filesdir}"
  62. cp -R "${rootdir}/teamspeak3-server_linux-${ts3arch}/*" "${filesdir}" 2> "${scriptlogdir}/.${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. fn_scriptlog "Failed to copy - Exit status ${status}"
  69. sleep 1
  70. cat "${scriptlogdir}/.${servicename}-cp-error.tmp"
  71. cat "${scriptlogdir}/.${servicename}-cp-error.tmp" >> "${scriptlog}"
  72. rm "${scriptlogdir}/.${servicename}-cp-error.tmp"
  73. fn_scriptlog "Failure! Unable to update"
  74. exit
  75. fi
  76. rm -f teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz
  77. rm -rf "${rootdir}/teamspeak3-server_linux-${ts3arch}"