fix_ark.sh 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #!/bin/bash
  2. # LinuxGSM fix_ark.sh module
  3. # Author: Daniel Gibbs
  4. # Contributors: http://linuxgsm.com/contrib
  5. # Website: https://linuxgsm.com
  6. # Description: Resolves issues with ARK: Survival Evolved.
  7. moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
  8. # removes mulitple appworkshop_346110.acf if found.
  9. steamappsfilewc="$(find "${HOME}" -name appworkshop_346110.acf | wc -l)"
  10. if [ "${steamappsfilewc}" -gt "1" ]; then
  11. fixname="multiple appworkshop acf files"
  12. fn_fix_msg_start
  13. find "${HOME}" -name appworkshop_346110.acf -exec rm -f {} \;
  14. fn_fix_msg_end
  15. elif [ "${steamappsfilewc}" -eq "1" ]; then
  16. # Steam mods directory selecter
  17. # This allows LinxuGSM to select either ~/.steam or ~/Steam. depending on what is being used
  18. steamappsfile=$(find "${HOME}" -name appworkshop_346110.acf)
  19. steamappsdir=$(dirname "${steamappsfile}")
  20. steamappspath=$(
  21. cd "${steamappsdir}" || return
  22. cd ../
  23. pwd
  24. )
  25. # removes the symlink if exists.
  26. # fixes issue with older versions of LinuxGSM linking to /home/arkserver/steamcmd
  27. if [ -L "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux" ]; then
  28. fixname="broken SteamCMD symlink"
  29. fn_fix_msg_start
  30. unlink "${serverfiles:?}/Engine/Binaries/ThirdParty/SteamCMD/Linux"
  31. fn_fix_msg_end
  32. check_steamcmd.sh
  33. fi
  34. # removed ARK steamcmd directory if steamcmd is missing.
  35. if [ ! -f "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamcmd.sh" ]; then
  36. fixname="remove invalid ARK SteamCMD directory"
  37. fn_fix_msg_start
  38. rm -rf "${serverfiles:?}/Engine/Binaries/ThirdParty/SteamCMD/Linux"
  39. fn_fix_msg_end
  40. check_steamcmd.sh
  41. fi
  42. # if the steamapps symlink is incorrect unlink it.
  43. if [ -d "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux" ] && [ -L "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamapps" ] && [ "$(readlink "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamapps")" != "${steamappspath}" ]; then
  44. fixname="incorrect steamapps symlink"
  45. fn_fix_msg_start
  46. unlink "${serverfiles:?}/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamapps"
  47. fn_fix_msg_end
  48. fi
  49. # Put symlink to steamapps directory into the ARK SteamCMD directory to link the downloaded mods to the correct location.
  50. if [ ! -L "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamapps" ]; then
  51. fixname="steamapps symlink"
  52. fn_fix_msg_start
  53. ln -s "${steamappspath}" "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamapps"
  54. fn_fix_msg_end
  55. fi
  56. fi