check_steamcmd.sh 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #!/bin/bash
  2. # LGSM check_steamcmd.sh function
  3. # Author: Daniel Gibbs
  4. # Website: https://gameservermanagers.com
  5. # Description: Checks SteamCMD is installed and correct.
  6. local commandnane="CHECK"
  7. local commandaction="Checking"
  8. # Cannot have selfname as breaks the function.
  9. #local selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
  10. fn_install_steamcmd(){
  11. if [ ! -d "${steamcmddir}" ]; then
  12. mkdir -v "${steamcmddir}"
  13. fi
  14. fn_fetch_file "http://media.steampowered.com/client/steamcmd_linux.tar.gz" "${lgsmdir}/tmp" "steamcmd_linux.tar.gz"
  15. fn_dl_extract "${lgsmdir}/tmp" "steamcmd_linux.tar.gz" "${steamcmddir}"
  16. chmod +x "${steamcmddir}/steamcmd.sh"
  17. }
  18. fn_check_steamcmd_user(){
  19. # Checks steamuser is setup.
  20. if [ "${steamuser}" == "username" ]; then
  21. fn_print_fail_nl "Steam login not set. Update steamuser in ${selfname}."
  22. echo " * Change steamuser=\"username\" to a valid steam login."
  23. if [ -d "${scriptlogdir}" ]; then
  24. fn_script_log_fatal "Steam login not set. Update steamuser in ${selfname}."
  25. fi
  26. core_exit.sh
  27. fi
  28. # Anonymous user is set if steamuser is missing
  29. if [ -z "${steamuser}" ]; then
  30. fn_print_warn_nl "Steam login not set. Using anonymous login."
  31. if [ -d "${scriptlogdir}" ]; then
  32. fn_script_log_error "Steam login not set. Using anonymous login."
  33. fi
  34. steamuser="anonymous"
  35. steampass=""
  36. sleep 2
  37. fi
  38. }
  39. fn_check_steamcmd_sh(){
  40. # Checks if SteamCMD exists when starting or updating a server.
  41. # Installs if missing.
  42. steamcmddir="${rootdir}/steamcmd"
  43. if [ ! -f "${steamcmddir}/steamcmd.sh" ]; then
  44. if [ "${selfname}" == "command_install.sh" ]; then
  45. fn_install_steamcmd
  46. else
  47. fn_print_warn_nl "SteamCMD is missing"
  48. fn_script_log_warn "SteamCMD is missing"
  49. sleep 1
  50. fn_install_steamcmd
  51. fi
  52. elif [ "${selfname}" == "command_install.sh" ]; then
  53. fn_print_infomation "SteamCMD is already installed..."
  54. fn_print_ok_eol_nl
  55. fi
  56. }
  57. fn_check_steamcmd_guard(){
  58. if [ "${selfname}" == "command_update.sh" ]||[ "${selfname}" == "command_validate.sh" ]; then
  59. # Checks that steamcmd is working correctly and will prompt Steam Guard if required.
  60. "${steamcmddir}"/steamcmd.sh +login "${steamuser}" "${steampass}" +quit
  61. if [ $? -ne 0 ]; then
  62. fn_print_failure_nl "Error running SteamCMD"
  63. fi
  64. fi
  65. }
  66. fn_check_steamcmd_user
  67. fn_check_steamcmd_sh
  68. fn_check_steamcmd_guard