You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

logs.sh 2.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #!/usr/bin/env bash
  2. ###############################
  3. # usage: logs.sh [ -e ARG ] [ -l ARG ] [ -n ARG ]
  4. # -e ARG: edition to run
  5. # valid values are 'oss' (Open Source), 'dev' (Developer), 'ent' (Enterprise) and 'ha' (HA) (case insensitive)
  6. # default value is 'oss'.
  7. # -l ARG: name of log file to display.
  8. # valid values are 'all', 'sonar', 'web', 'ce' and 'es' (case insensitive).
  9. # default value is 'all'.
  10. # -n ARG: number of log line to display. Value is passed to n option of tail.
  11. # default value is 25
  12. ###############################
  13. set -euo pipefail
  14. ROOT="$(pwd)"
  15. source "$ROOT/scripts/editions.sh"
  16. if [ -r "$ROOT/private/scripts/editions.sh" ]; then
  17. source "$ROOT/private/scripts/editions.sh"
  18. fi
  19. DEFAULT_LOG="all"
  20. DEFAULT_LINES="25"
  21. LOGS="sonar web ce es"
  22. toLower() {
  23. echo "$1" | tr '[:upper:]' '[:lower:]'
  24. }
  25. checkLogArgument() {
  26. local logArg="$1"
  27. local lowerLogArg=$(toLower $logArg)
  28. if [ "$lowerLogArg" = "$DEFAULT_LOG" ]; then
  29. return
  30. fi
  31. for t in $LOGS; do
  32. if [ "$lowerLogArg" = "$t" ]; then
  33. return
  34. fi
  35. done
  36. echo "Unsupported -l argument $logArg"
  37. exit 1
  38. }
  39. buildTailArgs() {
  40. local logArg="$(toLower $1)"
  41. local logLines="$2"
  42. local res=""
  43. for t in $LOGS; do
  44. if [ "$logArg" = "$DEFAULT_LOG" ] || [ "$logArg" = "$t" ]; then
  45. res="$res -Fn $logLines $SQ_HOME/logs/$t.log"
  46. fi
  47. done
  48. echo "$res"
  49. }
  50. doTail() {
  51. local logArg="$1"
  52. local logLines="${2:-"$DEFAULT_LINES"}"
  53. TAIL_ARG=$(buildTailArgs "$logArg" "$logLines")
  54. tail $TAIL_ARG
  55. }
  56. # check the script was called to avoid execute when script is only sourced
  57. script_name=$(basename "$0")
  58. if [ "$script_name" = "logs.sh" ]; then
  59. LOG="$DEFAULT_LOG"
  60. LINES="$DEFAULT_LINES"
  61. EDITION="$DEFAULT_EDITION"
  62. while getopts ":e:l:n:" opt; do
  63. case "$opt" in
  64. e) EDITION=${OPTARG:=$DEFAULT_EDITION}
  65. ;;
  66. l) LOG=${OPTARG:=$DEFAULT_LOG}
  67. ;;
  68. n) LINES=${OPTARG:=$DEFAULT_LINES}
  69. ;;
  70. \?)
  71. echo "Unsupported option $OPTARG" >&2
  72. exit 1
  73. ;;
  74. esac
  75. done
  76. checkEdition "$EDITION"
  77. checkLogArgument "$LOG"
  78. SQ_HOME_WILDCARD="$(distributionDirOf "$EDITION")/sonarqube-*"
  79. if ! ls ${SQ_HOME_WILDCARD} &> /dev/null; then
  80. echo "$(baseFileNameOf "$EDITION") is not unpacked"
  81. exit 1
  82. fi
  83. cd ${SQ_HOME_WILDCARD}
  84. SQ_HOME=$(pwd)
  85. cd "$ROOT"
  86. doTail "$LOG" "$LINES"
  87. fi