install_ts3db.sh 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #!/bin/bash
  2. # LinuxGSM install_ts3db.sh function
  3. # Author: Daniel Gibbs
  4. # Contributor: PhilPhonic
  5. # Website: https://linuxgsm.com
  6. # Description: Installs the database server MariaDB for TeamSpeak 3.
  7. local commandname="INSTALL"
  8. local commandaction="Install"
  9. local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
  10. fn_install_ts3db_mariadb(){
  11. if [ ! -f "${serverfiles}/libts3db_mariadb.so" ]; then
  12. echo -e "copying libmariadb.so.2...\c"
  13. cp "${serverfiles}/redist/libmariadb.so.2" "${serverfiles}"
  14. local exitcode=$?
  15. if [ "${exitcode}" == "0" ]; then
  16. fn_print_ok_eol_nl
  17. fn_script_log_pass "copying libmariadb.so.2"
  18. else
  19. fn_print_fail_eol_nl
  20. fn_script_log_fatal "copying libmariadb.so.2"
  21. core_exit.sh
  22. fi
  23. fi
  24. echo ""
  25. echo "Configure ${gamename} Server for MariaDB"
  26. echo "================================="
  27. sleep 0.5
  28. read -rp "Enter MariaDB hostname: " mariahostname
  29. read -rp "Enter MariaDB port: " mariaport
  30. read -rp "Enter MariaDB username: " mariausername
  31. read -rp "Enter MariaDB password: " mariapassword
  32. read -rp "Enter MariaDB database name: " mariadbname
  33. read -rp "Enter MariaDB socket path: " mariadbsocket
  34. {
  35. echo "[config]"
  36. echo "host='${mariahostname}'"
  37. echo "port='${mariaport}'"
  38. echo "username='${mariausername}'"
  39. echo "password='${mariapassword}'"
  40. echo "database='${mariadbname}'"
  41. echo "socket='${mariadbsocket}'"
  42. } >> "${servercfgdir}/ts3db_mariadb.ini"
  43. sed -i "s/dbplugin=ts3db_sqlite3/dbplugin=ts3db_mariadb/g" "${servercfgfullpath}"
  44. sed -i "s/dbpluginparameter=/dbpluginparameter=ts3db_mariadb.ini/g" "${servercfgfullpath}"
  45. sed -i "s/dbsqlcreatepath=create_sqlite\//dbsqlcreatepath=create_mariadb\//g" "${servercfgfullpath}"
  46. echo "updating ts3db_mariadb.ini."
  47. sleep 0.5
  48. }
  49. echo ""
  50. echo "Select Database"
  51. echo "================================="
  52. sleep 0.5
  53. if [ -z "${autoinstall}" ]; then
  54. if fn_prompt_yn "Do you want to use MariaDB instead of sqlite? (MariaDB must be pre-configured)" N; then
  55. fn_install_ts3db_mariadb
  56. fi
  57. else
  58. fn_print_information_nl "./${selfname} auto-install is uses sqlite. For MariaDB use ./${selfname} install"
  59. fi
  60. install_eula.sh
  61. ## Get privilege key
  62. echo ""
  63. echo "Getting privilege key"
  64. echo "================================="
  65. sleep 0.5
  66. fn_print_information_nl "Save these details for later."
  67. sleep 0.5
  68. cd "${executabledir}" || exit
  69. ${executable} start inifile=ts3-server.ini
  70. sleep 5
  71. ${executable} stop