|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #!/bin/bash
- ###############################
- # usage: logs.sh [ -l ARG ] [ -n ARG ]
- # -l ARG: name of log file to display.
- # valid values are 'all', 'sonar', 'web', 'ce' and 'es' (case insensitive).
- # default value is 'all'.
- # -n ARG: number of log line to display. Value is passed to n option of tail.
- # default value is 25
- ###############################
-
- set -euo pipefail
-
- DEFAULT_LOG="all"
- DEFAULT_LINES="25"
- LOGS="sonar web ce es"
- function checkLogArgument() {
- local logArg="$1"
- if [ "${logArg,,}" == "$DEFAULT_LOG" ]; then
- return
- fi
- for t in $LOGS; do
- if [ "${logArg,,}" == "$t" ]; then
- return
- fi
- done
- echo "Unsupported -l argument $logArg"
- exit 1
- }
-
- function buildTailArgs() {
- local logArg="$1"
- local logLines="$2"
- local res=""
- for t in $LOGS; do
- if [ "${logArg,,}" == "$DEFAULT_LOG" ] || [ "${logArg,,}" == "$t" ]; then
- res="$res -Fn $logLines $SQ_HOME/logs/$t.log"
- fi
- done
- echo "$res"
- }
-
- function doTail() {
- local logArg="$1"
- local logLines="${2:-"$DEFAULT_LINES"}"
- TAIL_ARG=$(buildTailArgs "$logArg" "$logLines")
- tail $TAIL_ARG
- }
-
- # check the script was called to avoid execute when script is only sourced
- script_name=$(basename "$0")
- if [ "$script_name" == "logs.sh" ]; then
- LOG="$DEFAULT_LOG"
- LINES="$DEFAULT_LINES"
- while getopts ":l:n:" opt; do
- case "$opt" in
- l) LOG=${OPTARG:=$DEFAULT_LOG}
- ;;
- n) LINES=${OPTARG:=$DEFAULT_LINES}
- ;;
- \?)
- echo "Unsupported option $OPTARG" >&2
- exit 1
- ;;
- esac
- done
-
- checkLogArgument "$LOG"
-
- ROOT=$(pwd)
- cd sonar-application/target/sonarqube-*
- SQ_HOME=$(pwd)
- cd "$ROOT"
-
- doTail "$LOG" "$LINES"
- fi
|