638 lines
16 KiB
Bash
638 lines
16 KiB
Bash
#!/bin/bash
|
|
# Authors: Dalibor Pospíšil <dapospis@redhat.com>
|
|
# Author: Dalibor Pospisil <dapospis@redhat.com>
|
|
#
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
#
|
|
# Copyright (c) 2013 Red Hat, Inc. All rights reserved.
|
|
#
|
|
# This copyrighted material is made available to anyone wishing
|
|
# to use, modify, copy, or redistribute it subject to the terms
|
|
# and conditions of the GNU General Public License version 2.
|
|
#
|
|
# This program is distributed in the hope that it will be
|
|
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
# PURPOSE. See the GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public
|
|
# License along with this program; if not, write to the Free
|
|
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
# Boston, MA 02110-1301, USA.
|
|
#
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
# library-prefix = Log
|
|
# library-version = 11
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
__INTERNAL_Log_LIB_VERSION=11
|
|
: <<'=cut'
|
|
=pod
|
|
|
|
=head1 NAME
|
|
|
|
BeakerLib library Log
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
This library provide logging capability which does not rely on beakerlib so it
|
|
can be used standalone.
|
|
|
|
If it is used within beakerlib it automatically bypass all messages to the
|
|
beakerlib.
|
|
|
|
Also this library provide journaling feature so the summary can be printed out
|
|
at the end.
|
|
|
|
=head1 USAGE
|
|
|
|
To use this functionality you need to import library distribution/Log and add
|
|
following line to Makefile.
|
|
|
|
@echo "RhtsRequires: library(distribution/Log)" >> $(METADATA)
|
|
|
|
=head1 FUNCTIONS
|
|
|
|
=cut
|
|
|
|
echo -n "loading library Log v$__INTERNAL_Log_LIB_VERSION... "
|
|
|
|
|
|
__INTERNAL_Log_prefix=''
|
|
__INTERNAL_Log_prefix2=''
|
|
__INTERNAL_Log_postfix=''
|
|
__INTERNAL_Log_default_level=3
|
|
__INTERNAL_Log_level=$__INTERNAL_Log_default_level
|
|
LogSetDebugLevel() {
|
|
if [[ -n "$1" ]]; then
|
|
if [[ "$1" =~ ^[0-9]+$ ]]; then
|
|
let __INTERNAL_Log_level=$__INTERNAL_Log_default_level+$1;
|
|
else
|
|
__INTERNAL_Log_level=255
|
|
fi
|
|
else
|
|
__INTERNAL_Log_level=$__INTERNAL_Log_default_level
|
|
fi
|
|
}
|
|
LogSetDebugLevel "$DEBUG"
|
|
let __INTERNAL_Log_level_LOG=0
|
|
let __INTERNAL_Log_level_FATAL=0
|
|
let __INTERNAL_Log_level_ERROR=1
|
|
let __INTERNAL_Log_level_WARNING=2
|
|
let __INTERNAL_Log_level_INFO=3
|
|
let __INTERNAL_Log_level_DEBUG=4
|
|
let __INTERNAL_Log_level_MORE=5
|
|
let __INTERNAL_Log_level_MORE_=$__INTERNAL_Log_level_MORE+1
|
|
let __INTERNAL_Log_level_MORE__=$__INTERNAL_Log_level_MORE_+1
|
|
let __INTERNAL_Log_level_MORE___=$__INTERNAL_Log_level_MORE__+1
|
|
|
|
# Log ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
Log() {
|
|
LogMore___ -f "begin '$*'"
|
|
local pri=$2 message="${__INTERNAL_Log_prefix}${__INTERNAL_Log_prefix2}${1}${__INTERNAL_Log_postfix}"
|
|
if [[ -n "$pri" ]]; then
|
|
LogPrintMessage "$pri" "$message"
|
|
LogjAddMessage "$pri" "$message"
|
|
else
|
|
LogPrintMessage "$(date +%H:%M:%S)" "$message"
|
|
LogjAddMessage "INFO" "$message"
|
|
fi
|
|
LogMore___ -f "end"
|
|
return 0
|
|
}; # end of Log }}}
|
|
|
|
|
|
__INTERNAL_Log_condition() {
|
|
cat <<EOF
|
|
__INTERNAL_Log_level_do=$1
|
|
if [[ \$__INTERNAL_Log_level -ge \$__INTERNAL_Log_level_do ]]; then
|
|
[[ -z "$2" ]] && return 1
|
|
else
|
|
return 0
|
|
fi
|
|
EOF
|
|
}
|
|
|
|
|
|
# LogInfo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
LogInfo() {
|
|
__INTERNAL_LogPrio='INFO'
|
|
eval "$(__INTERNAL_Log_condition \$__INTERNAL_Log_level_INFO \"\$1\")"
|
|
LogMore___ -f "begin '$*'"
|
|
__INTERNAL_LogPrio='INFO'
|
|
Log "$1" $__INTERNAL_LogPrio
|
|
LogMore___ -f "end"
|
|
return 0
|
|
}; # end of LogInfo }}}
|
|
|
|
|
|
# LogWarn ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
LogWarn() {
|
|
__INTERNAL_LogPrio='WARNING'
|
|
eval "$(__INTERNAL_Log_condition \$__INTERNAL_Log_level_WARNING \"\$1\")"
|
|
LogMore___ -f "begin '$*'"
|
|
__INTERNAL_LogPrio='WARNING'
|
|
Log "$1" $__INTERNAL_LogPrio
|
|
LogMore___ -f "end"
|
|
return 0
|
|
}; # end of LogWarn }}}
|
|
|
|
|
|
# LogWarning ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
LogWarning() {
|
|
__INTERNAL_LogPrio='WARNING'
|
|
eval "$(__INTERNAL_Log_condition \$__INTERNAL_Log_level_WARNING \"\$1\")"
|
|
LogMore___ -f "begin '$*'"
|
|
__INTERNAL_LogPrio='WARNING'
|
|
Log "$1" $__INTERNAL_LogPrio
|
|
LogMore___ -f "end"
|
|
return 0
|
|
}; # end of LogWarning }}}
|
|
|
|
|
|
# LogError ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
LogError() {
|
|
__INTERNAL_LogPrio='ERROR'
|
|
eval "$(__INTERNAL_Log_condition \$__INTERNAL_Log_level_ERROR \"\$1\")"
|
|
LogMore___ -f "begin '$*'"
|
|
__INTERNAL_LogPrio='ERROR'
|
|
Log "$1" $__INTERNAL_LogPrio
|
|
LogMore___ -f "end"
|
|
return 0
|
|
}; # end of LogError }}}
|
|
|
|
|
|
# LogFatal ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
LogFatal() {
|
|
__INTERNAL_LogPrio='FATAL'
|
|
eval "$(__INTERNAL_Log_condition \$__INTERNAL_Log_level_FATAL \"\$1\")"
|
|
LogMore___ -f "begin '$*'"
|
|
__INTERNAL_LogPrio='FATAL'
|
|
Log "$1" $__INTERNAL_LogPrio
|
|
exit 255
|
|
LogMore___ -f "end"
|
|
}; # end of LogFatal }}}
|
|
|
|
|
|
# LogPASS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
LogPASS() {
|
|
LogMore___ -f "begin '$*'"
|
|
Log "$1" PASS
|
|
LogMore___ -f "end"
|
|
return 0
|
|
}
|
|
LogPass() {
|
|
LogPASS "$@"
|
|
}; # end of LogPASS }}}
|
|
|
|
|
|
# LogFAIL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
LogFAIL() {
|
|
LogMore___ -f "begin '$*'"
|
|
Log "$1" FAIL
|
|
LogMore___ -f "end"
|
|
return 0
|
|
}
|
|
LogFail() {
|
|
LogFAIL "$@"
|
|
}; # end of LogFAIL }}}
|
|
|
|
|
|
# LogDo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
LogDo() {
|
|
local pref=''
|
|
[[ "$1" =~ ^-f([0-9]*) ]] && {
|
|
shift
|
|
local tmp=${BASH_REMATCH[1]:-1}
|
|
pref="${FUNCNAME[$tmp]}(): "
|
|
}
|
|
LogPrintMessage "$__INTERNAL_LogPrio" "${__INTERNAL_Log_prefix}${pref}${__INTERNAL_Log_prefix2}${1}${__INTERNAL_Log_postfix}"
|
|
return 0
|
|
}; # end of LogDo }}}
|
|
|
|
|
|
# LogDebug ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
LogDebug() {
|
|
local pref=''
|
|
[[ "$1" =~ ^-f([0-9]*) ]] && {
|
|
shift
|
|
pref="-f$((${BASH_REMATCH[1]:-1}+1))"
|
|
}
|
|
__INTERNAL_Log_level_do=${2:-$__INTERNAL_Log_level_DEBUG}
|
|
__INTERNAL_LogPrio='DEBUG'
|
|
[[ $__INTERNAL_Log_level_do -ge $__INTERNAL_Log_level_MORE ]] && __INTERNAL_LogPrio="${__INTERNAL_LogPrio}:$(($__INTERNAL_Log_level_do-$__INTERNAL_Log_level_DEBUG+1))"
|
|
eval "$(__INTERNAL_Log_condition \${2:-\$__INTERNAL_Log_level_DEBUG} \"\$1\")"
|
|
LogDo $pref "$1"
|
|
return 0
|
|
}; # end of LogDebug }}}
|
|
|
|
|
|
# LogMore ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
LogMore() {
|
|
# log if DEBUG does not containg a number
|
|
# or the number is greater or equal to 2
|
|
local pref=''
|
|
[[ "$1" =~ ^-f([0-9]*) ]] && {
|
|
shift
|
|
pref="-f$((${BASH_REMATCH[1]:-1}+1))"
|
|
}
|
|
LogDebug $pref "$1" ${2:-$__INTERNAL_Log_level_MORE}
|
|
}; # end of LogMore }}}
|
|
|
|
|
|
# LogMore_ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
LogMore_() {
|
|
local pref=''
|
|
[[ "$1" =~ ^-f([0-9]*) ]] && {
|
|
shift
|
|
pref="-f$((${BASH_REMATCH[1]:-1}+1))"
|
|
}
|
|
LogDebug $pref "$1" $__INTERNAL_Log_level_MORE_
|
|
}; # end of LogMore_ }}}
|
|
|
|
|
|
# LogMore__ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
LogMore__() {
|
|
local pref=''
|
|
[[ "$1" =~ ^-f([0-9]*) ]] && {
|
|
shift
|
|
pref="-f$((${BASH_REMATCH[1]:-1}+1))"
|
|
}
|
|
LogDebug $pref "$1" $__INTERNAL_Log_level_MORE__
|
|
}; # end of LogMore__ }}}
|
|
|
|
|
|
# LogMore___ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
LogMore___() {
|
|
local pref=''
|
|
[[ "$1" =~ ^-f([0-9]*) ]] && {
|
|
shift
|
|
pref="-f$((${BASH_REMATCH[1]:-1}+1))"
|
|
}
|
|
LogDebug $pref "$1" $__INTERNAL_Log_level_MORE___
|
|
}; # end of LogMore___ }}}
|
|
|
|
|
|
# LogMoreLow ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
__INTERNAL_LogMoreLow_Obs=''
|
|
LogMoreLow() {
|
|
[[ -z "$__INTERNAL_LogMoreLow_Obs" ]] && {
|
|
LogMore_ -f "LogMoreLow is obsoleted by LogMore_"
|
|
__INTERNAL_LogMoreLow_Obs=1
|
|
}
|
|
local pref=''
|
|
[[ "$1" =~ ^-f([0-9]*) ]] && {
|
|
shift
|
|
pref="-f$((${BASH_REMATCH[1]:-1}+1))"
|
|
}
|
|
LogDebug $pref "$1" $__INTERNAL_Log_level_MORE_
|
|
}; # end of LogMoreLow }}}
|
|
|
|
|
|
# LogMoreMed ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
__INTERNAL_LogMoreMed_Obs=''
|
|
LogMoreMed() {
|
|
[[ -z "$__INTERNAL_LogMoreMed_Obs" ]] && {
|
|
LogMore__ -f "LogMoreMed is obsoleted by LogMore__"
|
|
__INTERNAL_LogMoreMed_Obs=1
|
|
}
|
|
local pref=''
|
|
[[ "$1" =~ ^-f([0-9]*) ]] && {
|
|
shift
|
|
pref="-f$((${BASH_REMATCH[1]:-1}+1))"
|
|
}
|
|
LogDebug $pref "$1" $__INTERNAL_Log_level_MORE__
|
|
}; # end of LogMoreMed }}}
|
|
|
|
|
|
# LogMoreHigh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
__INTERNAL_LogMoreHigh_Obs=''
|
|
LogMoreHigh() {
|
|
[[ -z "$__INTERNAL_LogMoreHigh_Obs" ]] && {
|
|
LogMore___ -f "LogMoreHigh is obsoleted by LogMore___"
|
|
__INTERNAL_LogMoreHigh_Obs=1
|
|
}
|
|
local pref=''
|
|
[[ "$1" =~ ^-f([0-9]*) ]] && {
|
|
shift
|
|
pref="-f$((${BASH_REMATCH[1]:-1}+1))"
|
|
}
|
|
LogDebug $pref "$1" $__INTERNAL_Log_level_MORE___
|
|
}; # end of LogMoreHigh }}}
|
|
|
|
|
|
# LogjAddMessage ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
LogjAddMessage() {
|
|
LogMore__ -f "begin '$*'"
|
|
__INTERNAL_Log_journal=("${__INTERNAL_Log_journal[@]}" "$1" "$2")
|
|
LogMore__ -f "end"
|
|
true;
|
|
}; # end of LogjAddMessage }}}
|
|
|
|
# __INTERNAL_LogCenterText ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
__INTERNAL_LogCenterText() {
|
|
local spaces=' '
|
|
# strip colors
|
|
local log_pri_strip=$(echo -en "$1" | sed -r "s:\x1B\[[0-9;]*[mK]::g")
|
|
local log_pri_strip_count=${#log_pri_strip}
|
|
local left_spaces=$(( ($2 - $log_pri_strip_count) / 2 ))
|
|
local right_spaces=$(( $2 - $log_pri_strip_count - $left_spaces ))
|
|
echo -en "${spaces:0:$left_spaces}${1}${spaces:0:$right_spaces}"
|
|
}; # end of __INTERNAL_LogCenterText }}}
|
|
|
|
|
|
# LogPrintMessage ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
LogPrintMessage() {
|
|
echo -e ":: [$(__INTERNAL_LogCenterText "$1" 10)] :: $2" >&2
|
|
return 0
|
|
}; # end of LogPrintMessage }}}
|
|
|
|
|
|
# LogReport ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
: <<'=cut'
|
|
=pod
|
|
|
|
=head3 LogReport
|
|
|
|
Prints final report similar to breakerlib's rlJournalPrintText. This is useful
|
|
mainly if you use TCF without beakerlib.
|
|
|
|
LogReport
|
|
|
|
=cut
|
|
#'
|
|
|
|
LogReport() {
|
|
echo -e "\n ====== Summary report begin ======"
|
|
local a p l i
|
|
for i in $(seq 0 2 $((${#__INTERNAL_Log_journal[@]}-1)) ); do
|
|
LogPrintMessage "${__INTERNAL_Log_journal[$i]}" "${__INTERNAL_Log_journal[$((++i))]}"
|
|
done
|
|
echo " ======= Summary report end ======="
|
|
__INTERNAL_Log_journal=()
|
|
}; # end of LogReport }}}
|
|
|
|
|
|
# LogFile ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
LogFile() {
|
|
LogMore__ -f "begin '$*'"
|
|
local prio=''
|
|
[[ $# -ge 3 ]] && {
|
|
optsBegin
|
|
optsAdd 'prio|tag|p|t' --mandatory
|
|
optsDone; eval "${optsCode}"
|
|
}
|
|
cat $1 | while IFS= read line; do
|
|
Log "$line" "${prio:-$2}"
|
|
done
|
|
LogMore__ -f "end"
|
|
}; #}}}
|
|
|
|
|
|
# LogText ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
LogText() {
|
|
LogMore__ -f "begin '$*'"
|
|
local prio=''
|
|
[[ $# -ge 3 ]] && {
|
|
optsBegin
|
|
optsAdd 'prio|tag|p|t' --mandatory
|
|
optsDone; eval "${optsCode}"
|
|
}
|
|
{
|
|
if [[ "$1" == "-" ]]; then
|
|
cat -
|
|
else
|
|
echo "$1"
|
|
fi
|
|
} | while IFS= read line; do
|
|
Log "$line" "${prio:-$2}"
|
|
done
|
|
LogMore__ -f "end"
|
|
}; #}}}
|
|
|
|
|
|
# LogStrippedDiff ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
LogStrippedDiff() {
|
|
LogMore__ -f "begin '$*'"
|
|
local prio=''
|
|
[[ $# -ge 3 ]] && {
|
|
optsBegin
|
|
optsAdd 'prio|tag|p|t' --mandatory
|
|
optsDone; eval "${optsCode}"
|
|
}
|
|
{
|
|
if [[ -n "$2" ]]; then
|
|
diff -U0 "$1" "$2"
|
|
else
|
|
cat $1
|
|
fi
|
|
} | grep -v -e '^@@ ' -e '^--- ' -e '^+++ ' | while IFS= read line; do
|
|
Log "$line" "$prio"
|
|
done
|
|
LogMore__ -f "end"
|
|
}; #}}}
|
|
|
|
|
|
# LogRun ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
# log info about execution to Debug level
|
|
LogRun() {
|
|
local pref=''
|
|
[[ "$1" =~ ^-f([0-9]*) ]] && {
|
|
shift
|
|
pref="-f$((${BASH_REMATCH[1]:-1}+1))"
|
|
}
|
|
LogMore
|
|
local dolog=$?
|
|
[[ $dolog -eq 0 ]] || {
|
|
local param params blacklist="[[:space:]]|>|<|\|"
|
|
[[ "${#@}" -eq 1 ]] && params="$1" || {
|
|
for param in "$@"; do
|
|
if [[ "$param" =~ $blacklist ]]; then
|
|
params="$params \"${param//\"/\\\"}\""
|
|
else
|
|
params="$params $param"
|
|
fi
|
|
done
|
|
params="${params:1}"
|
|
}
|
|
LogDo $pref "executing >>>>> ${params} <<<<<"
|
|
}
|
|
eval "$@"
|
|
ret=$?
|
|
[[ $dolog -eq 0 ]] || LogMore $pref "execution >>>>> ${params} <<<<< returned '$ret'"
|
|
return $ret
|
|
}; # end of LogRun }}}
|
|
|
|
|
|
# LogDebugNext ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
# log info about execution to Debug level
|
|
LogDebugNext() {
|
|
local pref=''
|
|
[[ "$1" =~ ^-f([0-9]*) ]] && {
|
|
shift
|
|
pref="-f$((${BASH_REMATCH[1]:-1}))"
|
|
}
|
|
LogDebug '' ${1:-$__INTERNAL_Log_level_DEBUG} || {
|
|
__INTERNAL_Log_DEBUGING=0
|
|
trap "
|
|
__INTERNAL_Log_DEBUGING_res=\$?
|
|
let __INTERNAL_Log_DEBUGING++
|
|
if [[ \$__INTERNAL_Log_DEBUGING -eq 1 ]]; then
|
|
__INTERNAL_Log_DEBUGING_cmd=\"\$BASH_COMMAND\"
|
|
LogDebug $pref \"executing >>>>> \$__INTERNAL_Log_DEBUGING_cmd <<<<<\" ${1:-$__INTERNAL_Log_level_DEBUG}
|
|
else
|
|
trap - DEBUG
|
|
LogDebug $pref \"execution >>>>> \$__INTERNAL_Log_DEBUGING_cmd <<<<< returned \$__INTERNAL_Log_DEBUGING_res\" ${1:-$__INTERNAL_Log_level_DEBUG}
|
|
fi" DEBUG
|
|
}
|
|
}; # end of LogDebugNext }}}
|
|
|
|
|
|
# LogMoreNext ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
# log info about execution to Debug level
|
|
LogMoreNext() {
|
|
LogMore || {
|
|
local pref=''
|
|
[[ "$1" =~ ^-f([0-9]*) ]] && {
|
|
shift
|
|
pref="-f$((${BASH_REMATCH[1]:-1}))"
|
|
}
|
|
LogDebugNext $pref ${1:-$__INTERNAL_Log_level_MORE}
|
|
}
|
|
}; # end of LogMoreNext }}}
|
|
LogNext() {
|
|
LogMoreNext "$@"
|
|
}
|
|
|
|
|
|
# LogDebugOn ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
# log info about execution to Debug level
|
|
LogDebugOn() {
|
|
local pref=''
|
|
[[ "$1" =~ ^-f([0-9]*) ]] && {
|
|
shift
|
|
pref="-f$((${BASH_REMATCH[1]:-1}))"
|
|
}
|
|
LogDebug '' ${1:-$__INTERNAL_Log_level_DEBUG} || {
|
|
trap "
|
|
__INTERNAL_Log_DEBUGING_res=\$?
|
|
let __INTERNAL_Log_DEBUGING++
|
|
if [[ -z \"\$__INTERNAL_Log_DEBUGING_cmd\" ]]; then
|
|
__INTERNAL_Log_DEBUGING_cmd=\"\$BASH_COMMAND\"
|
|
LogDebug $pref \"executing >>>>> \$__INTERNAL_Log_DEBUGING_cmd <<<<<\" ${1:-$__INTERNAL_Log_level_DEBUG}
|
|
else
|
|
LogDebug $pref \"execution >>>>> \$__INTERNAL_Log_DEBUGING_cmd <<<<< returned \$__INTERNAL_Log_DEBUGING_res\" ${1:-$__INTERNAL_Log_level_DEBUG}
|
|
__INTERNAL_Log_DEBUGING_cmd=\"\$BASH_COMMAND\"
|
|
if [[ \"\$__INTERNAL_Log_DEBUGING_cmd\" =~ LogDebugOff ]]; then
|
|
trap - DEBUG
|
|
else
|
|
LogDebug $pref \"executing >>>>> \$__INTERNAL_Log_DEBUGING_cmd <<<<<\" ${1:-$__INTERNAL_Log_level_DEBUG}
|
|
fi
|
|
fi" DEBUG
|
|
}
|
|
}; # end of LogDebugOn }}}
|
|
|
|
|
|
# LogMoreOn ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
# log info about execution to Debug level
|
|
LogMoreOn() {
|
|
LogMore || {
|
|
local pref=''
|
|
[[ "$1" =~ ^-f([0-9]*) ]] && {
|
|
shift
|
|
pref="-f$((${BASH_REMATCH[1]:-1}))"
|
|
}
|
|
LogDebugOn $pref ${1:-$__INTERNAL_Log_level_MORE}
|
|
}
|
|
}; # end of LogMoreOn }}}
|
|
|
|
|
|
# LogDebugOff ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
# log info about execution to Debug level
|
|
LogDebugOff() {
|
|
__INTERNAL_Log_DEBUGING_cmd=''
|
|
}; # end of LogDebugOff }}}
|
|
|
|
|
|
# LogVar ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
LogVar() {
|
|
[[ -n "$DEBUG" ]] && {
|
|
echo -n 'eval '
|
|
while [[ -n "$1" ]]; do
|
|
echo -n "LogDebug -f \"\$(set | grep -P '^$1=')\";"
|
|
shift
|
|
done
|
|
}
|
|
}; # end of LogVar }}}
|
|
|
|
|
|
# __INTERNAL_LogRedirectToBeakerlib ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
__INTERNAL_LogRedirectToBeakerlib() {
|
|
echo -e "\nrunning inside the beakerlib - redirect own logging functions to beakerlib ones"
|
|
true; LogjAddMessage() {
|
|
LogMore___ -f "begin $*"
|
|
rljAddMessage "$2" "$1"
|
|
LogMore___ -f "end $*"
|
|
}
|
|
true; Log() {
|
|
LogMore___ -f "begin $*"
|
|
case ${2} in
|
|
INFO)
|
|
LogjAddMessage "INFO" "$1"
|
|
LogPrintMessage "$2" "${__INTERNAL_Log_prefix}${__INTERNAL_Log_prefix2}${1}${__INTERNAL_Log_postfix}"
|
|
;;
|
|
BEGIN)
|
|
LogjAddMessage "INFO" "$*:"
|
|
LogPrintMessage "$2" "${__INTERNAL_Log_prefix}${__INTERNAL_Log_prefix2}${1}${__INTERNAL_Log_postfix}"
|
|
;;
|
|
WARNING|WARN|ERROR|FATAL)
|
|
LogjAddMessage "WARNING" "$1"
|
|
LogPrintMessage "$2" "${__INTERNAL_Log_prefix}${__INTERNAL_Log_prefix2}${1}${__INTERNAL_Log_postfix}"
|
|
;;
|
|
SKIP|SKIPPING)
|
|
LogjAddMessage "WARNING" "$*:"
|
|
LogPrintMessage "$2" "${__INTERNAL_Log_prefix}${__INTERNAL_Log_prefix2}${1}${__INTERNAL_Log_postfix}"
|
|
;;
|
|
FAIL)
|
|
rlFail "$*"
|
|
return $?
|
|
;;
|
|
PASS)
|
|
rlPass "$*"
|
|
return $?
|
|
;;
|
|
*)
|
|
rlLog "$*"
|
|
;;
|
|
esac
|
|
LogMore___ -f "end $*"
|
|
return 0;
|
|
}
|
|
}
|
|
# end of __INTERNAL_LogRedirectToBeakerlib }}}
|
|
|
|
|
|
# LogLibraryLoaded ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{{
|
|
LogLibraryLoaded() {
|
|
declare -F rlDie > /dev/null && __INTERNAL_LogRedirectToBeakerlib
|
|
return 0
|
|
}; # end of LogLibraryLoaded }}}
|
|
|
|
|
|
echo "done."
|
|
|
|
: <<'=cut'
|
|
=pod
|
|
|
|
=head1 AUTHORS
|
|
|
|
=over
|
|
|
|
=item *
|
|
|
|
Dalibor Pospisil <dapospis@redhat.com>
|
|
|
|
=back
|
|
|
|
=cut
|
|
|