fix_ark.sh 2.4 KB

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