check_steamcmd.sh 2.2 KB

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