install_logs.sh 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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. fn_script_log_fail "Creating log directory ${logdir}"
  18. core_exit.sh
  19. else
  20. fn_print_ok_eol_nl
  21. fi
  22. else
  23. fn_print_skip_eol_nl
  24. fi
  25. echo -en "creating script log directory [ ${italic}${lgsmlogdir}${default} ]"
  26. if [ ! -d "${lgsmlogdir}" ]; then
  27. if ! mkdir -p "${lgsmlogdir}"; then
  28. fn_print_fail_eol_nl
  29. fn_script_log_fail "Creating script log directory ${lgsmlogdir}"
  30. core_exit.sh
  31. else
  32. fn_print_ok_eol_nl
  33. fi
  34. else
  35. fn_print_skip_eol_nl
  36. fi
  37. echo -en "creating script log [ ${italic}${lgsmlog}${default} ]"
  38. if [ ! -f "${lgsmlog}" ]; then
  39. if ! touch "${lgsmlog}"; then
  40. fn_print_fail_eol_nl
  41. fn_script_log_fail "Creating script log ${lgsmlog}"
  42. core_exit.sh
  43. else
  44. fn_print_ok_eol_nl
  45. fi
  46. else
  47. fn_print_skip_eol_nl
  48. fi
  49. echo -en "creating console log directory [ ${italic}${consolelogdir}${default} ]"
  50. if [ ! -d "${consolelogdir}" ]; then
  51. if ! mkdir -p "${consolelogdir}"; then
  52. fn_print_fail_eol_nl
  53. fn_script_log_fail "Creating console log directory ${consolelogdir}"
  54. core_exit.sh
  55. else
  56. fn_print_ok_eol_nl
  57. fi
  58. else
  59. fn_print_skip_eol_nl
  60. fi
  61. echo -en "creating console log [ ${italic}${consolelog}${default} ]"
  62. if [ ! -f "${consolelog}" ]; then
  63. if ! touch "${consolelog}"; then
  64. fn_print_fail_eol_nl
  65. fn_script_log_fail "Creating console log ${consolelog}"
  66. core_exit.sh
  67. else
  68. fn_print_ok_eol_nl
  69. fi
  70. else
  71. fn_print_skip_eol_nl
  72. fi
  73. if [ -n "${gamelogdir}" ]; then
  74. echo -en "creating game log directory [ ${italic}${gamelogdir}${default} ]"
  75. if [ ! -d "${gamelogdir}" ]; then
  76. if ! mkdir -p "${gamelogdir}"; then
  77. fn_print_fail_eol_nl
  78. fn_script_log_fail "Creating game log directory ${gamelogdir}"
  79. core_exit.sh
  80. else
  81. fn_print_ok_eol_nl
  82. fi
  83. else
  84. fn_print_skip_eol_nl
  85. fi
  86. fi
  87. # Symlink to gamelogdir
  88. # unless gamelogdir is within logdir.
  89. # e.g serverfiles/log is not within log/: symlink created
  90. # log/server is in log/: symlink not created
  91. if [ -n "${gamelogdir}" ] && [ "${gamelogdir:0:${#logdir}}" != "${logdir}" ]; then
  92. echo -en "creating symlink to game log directory [ ${italic}${logdir}/server -> ${gamelogdir}${default} ]"
  93. # if path does not exist or does not match gamelogdir
  94. if [ ! -h "${logdir}/server" ] || [ "$(readlink -f "${logdir}/server")" != "${gamelogdir}" ]; then
  95. if ! ln -nfs "${gamelogdir}" "${logdir}/server"; then
  96. fn_print_fail_eol_nl
  97. fn_script_log_fail "Creating symlink to game log directory ${logdir}/server"
  98. core_exit.sh
  99. else
  100. fn_print_ok_eol_nl
  101. fi
  102. else
  103. fn_print_skip_eol_nl
  104. fi
  105. fi
  106. # If server uses SteamCMD create a symbolic link to the Steam logs.
  107. if [ -d "${HOME}/.steam/steam/logs" ]; then
  108. echo -en "creating symlink to steam log directory [ ${italic}${logdir}/steam -> ${HOME}/.steam/steam/logs${default} ]"
  109. if [ ! -L "${logdir}/steam" ]; then
  110. if ! ln -nfs "${HOME}/.steam/steam/logs" "${logdir}/steam"; then
  111. fn_print_fail_eol_nl
  112. fn_script_log_fail "Creating symlink to steam log directory ${logdir}/steam"
  113. core_exit.sh
  114. else
  115. fn_print_ok_eol_nl
  116. fi
  117. else
  118. fn_print_skip_eol_nl
  119. fi
  120. fi
  121. fn_script_log_info "Logs installed"