4
0

install_logs.sh 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. #!/bin/bash
  2. # LinuxGSM install_logs.sh module
  3. # Author: Daniel Gibbs
  4. # Contributors: https://linuxgsm.com/contrib
  5. # Website: https://linuxgsm.com
  6. # Description: Creates log directories.
  7. moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
  8. if [ -z "${checklogs}" ]; then
  9. echo -e ""
  10. echo -e "${bold}${lightyellow}Creating Log Directories${default}"
  11. fn_messages_separator
  12. fi
  13. echo -en "creating log directory [ ${italic}${logdir}${default} ]"
  14. if [ ! -d "${logdir}" ]; then
  15. if ! mkdir -p "${logdir}"; then
  16. fn_print_fail_eol_nl
  17. core_exit.sh
  18. else
  19. fn_print_ok_eol_nl
  20. fi
  21. else
  22. fn_print_skip_eol_nl
  23. fi
  24. echo -en "creating script log directory [ ${italic}${lgsmlogdir}${default} ]"
  25. if [ ! -d "${lgsmlogdir}" ]; then
  26. if ! mkdir -p "${lgsmlogdir}"; then
  27. fn_print_fail_eol_nl
  28. core_exit.sh
  29. else
  30. fn_print_ok_eol_nl
  31. fi
  32. else
  33. fn_print_skip_eol_nl
  34. fi
  35. echo -en "creating script log [ ${italic}${lgsmlog}${default} ]"
  36. if [ ! -f "${lgsmlog}" ]; then
  37. if ! touch "${lgsmlog}"; then
  38. fn_print_fail_eol_nl
  39. core_exit.sh
  40. else
  41. fn_print_ok_eol_nl
  42. fi
  43. else
  44. fn_print_skip_eol_nl
  45. fi
  46. echo -en "creating console log directory [ ${italic}${consolelogdir}${default} ]"
  47. if [ ! -d "${consolelogdir}" ]; then
  48. if ! mkdir -p "${consolelogdir}"; then
  49. fn_print_fail_eol_nl
  50. core_exit.sh
  51. else
  52. fn_print_ok_eol_nl
  53. fi
  54. else
  55. fn_print_skip_eol_nl
  56. fi
  57. echo -en "creating console log [ ${italic}${consolelog}${default} ]"
  58. if [ ! -f "${consolelog}" ]; then
  59. if ! touch "${consolelog}"; then
  60. fn_print_fail_eol_nl
  61. core_exit.sh
  62. else
  63. fn_print_ok_eol_nl
  64. fi
  65. else
  66. fn_print_skip_eol_nl
  67. fi
  68. if [ -n "${gamelogdir}" ]; then
  69. echo -en "creating game log directory [ ${italic}${gamelogdir}${default} ]"
  70. if [ ! -d "${gamelogdir}" ]; then
  71. if ! mkdir -p "${gamelogdir}"; then
  72. fn_print_fail_eol_nl
  73. core_exit.sh
  74. else
  75. fn_print_ok_eol_nl
  76. fi
  77. else
  78. fn_print_skip_eol_nl
  79. fi
  80. fi
  81. # Symlink to gamelogdir
  82. # unless gamelogdir is within logdir.
  83. # e.g serverfiles/log is not within log/: symlink created
  84. # log/server is in log/: symlink not created
  85. if [ -n "${gamelogdir}" ] && [ "${gamelogdir:0:${#logdir}}" != "${logdir}" ]; then
  86. echo -en "creating symlink to game log directory [ ${italic}${logdir}/server -> ${gamelogdir}${default} ]"
  87. # if path does not exist or does not match gamelogdir
  88. if [ ! -h "${logdir}/server" ] || [ "$(readlink -f "${logdir}/server")" != "${gamelogdir}" ]; then
  89. if ! ln -nfs "${gamelogdir}" "${logdir}/server"; then
  90. fn_print_fail_eol_nl
  91. core_exit.sh
  92. else
  93. fn_print_ok_eol_nl
  94. fi
  95. else
  96. fn_print_skip_eol_nl
  97. fi
  98. fi
  99. # If server uses SteamCMD create a symbolic link to the Steam logs.
  100. if [ -d "${HOME}/.steam/steam/logs" ]; then
  101. echo -en "creating symlink to steam log directory [ ${italic}${logdir}/steam -> ${HOME}/.steam/steam/logs${default} ]"
  102. if [ ! -L "${logdir}/steam" ]; then
  103. if ! ln -nfs "${HOME}/.steam/steam/logs" "${logdir}/steam"; then
  104. fn_print_fail_eol_nl
  105. core_exit.sh
  106. else
  107. fn_print_ok_eol_nl
  108. fi
  109. else
  110. fn_print_skip_eol_nl
  111. fi
  112. fi
  113. fn_script_log_info "Logs installed"