Your commit message
This commit is contained in:
191
Public/lib/wdd-lib-log.sh
Normal file
191
Public/lib/wdd-lib-log.sh
Normal file
@@ -0,0 +1,191 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# 日志模块
|
||||
|
||||
# Constants
|
||||
RESET='\033[0m' ## 普通黑
|
||||
RED='\033[38;5;1m' ## 姨妈红
|
||||
GREEN='\033[38;5;2m' ## 水鸭青
|
||||
YELLOW='\033[38;5;3m' ## 鸭屎黄
|
||||
MAGENTA='\033[38;5;5m' ## 基佬紫
|
||||
CYAN='\033[38;5;6m' ## 天依蓝
|
||||
SplitLine="--------------------------------------------------------------------------------"
|
||||
# Functions
|
||||
|
||||
########################
|
||||
# Print to STDERR
|
||||
# Arguments:
|
||||
# Message to print
|
||||
# Returns:
|
||||
# None
|
||||
#########################
|
||||
stderr_print() {
|
||||
# 'is_boolean_yes' is defined in libvalidations.sh, but depends on this file so we cannot source it
|
||||
local bool="${BITNAMI_QUIET:-false}"
|
||||
# comparison is performed without regard to the case of alphabetic characters
|
||||
shopt -s nocasematch
|
||||
if ! [[ "$bool" = 1 || "$bool" =~ ^(yes|true)$ ]]; then
|
||||
printf "%b\\n" "${*}" >&2
|
||||
fi
|
||||
}
|
||||
|
||||
########################
|
||||
# Log message
|
||||
# Arguments:
|
||||
# Message to log
|
||||
# Returns:
|
||||
# None
|
||||
#########################
|
||||
log() {
|
||||
stderr_print "${CYAN}${MODULE:-} ${MAGENTA}$(date "+%Y-%m-%d %H:%M:%S.%2N ")${RESET}${*}"
|
||||
}
|
||||
########################
|
||||
# Log an 'info' message
|
||||
# Arguments:
|
||||
# Message to log
|
||||
# Returns:
|
||||
# None
|
||||
#########################
|
||||
info() {
|
||||
log "${GREEN}INFO ${RESET} ==> ${*}"
|
||||
}
|
||||
########################
|
||||
# Log message
|
||||
# Arguments:
|
||||
# Message to log
|
||||
# Returns:
|
||||
# None
|
||||
#########################
|
||||
warn() {
|
||||
log "${YELLOW}WARN ${RESET} ==> ${*}"
|
||||
}
|
||||
########################
|
||||
# Log an 'error' message
|
||||
# Arguments:
|
||||
# Message to log
|
||||
# Returns:
|
||||
# None
|
||||
#########################
|
||||
error() {
|
||||
log "${RED}ERROR${RESET} ==> ${*}"
|
||||
}
|
||||
########################
|
||||
# Log a 'debug' message
|
||||
# Globals:
|
||||
# BITNAMI_DEBUG
|
||||
# Arguments:
|
||||
# None
|
||||
# Returns:
|
||||
# None
|
||||
#########################
|
||||
debug() {
|
||||
# 'is_boolean_yes' is defined in libvalidations.sh, but depends on this file so we cannot source it
|
||||
local bool="${BITNAMI_DEBUG:-true}"
|
||||
# comparison is performed without regard to the case of alphabetic characters
|
||||
shopt -s nocasematch
|
||||
if [[ "$bool" = 1 || "$bool" =~ ^(yes|true)$ ]]; then
|
||||
log "${MAGENTA}DEBUG${RESET} ==> ${*}"
|
||||
fi
|
||||
}
|
||||
|
||||
########################
|
||||
# Indent a string
|
||||
# Arguments:
|
||||
# $1 - string
|
||||
# $2 - number of indentation characters (default: 4)
|
||||
# $3 - indentation character (default: " ")
|
||||
# Returns:
|
||||
# None
|
||||
#########################
|
||||
indent() {
|
||||
local string="${1:-}"
|
||||
local num="${2:?missing num}"
|
||||
local char="${3:-" "}"
|
||||
# Build the indentation unit string
|
||||
local indent_unit=""
|
||||
for ((i = 0; i < num; i++)); do
|
||||
indent_unit="${indent_unit}${char}"
|
||||
done
|
||||
# shellcheck disable=SC2001
|
||||
# Complex regex, see https://github.com/koalaman/shellcheck/wiki/SC2001#exceptions
|
||||
echo "$string" | sed "s/^/${indent_unit}/"
|
||||
}
|
||||
|
||||
RED_COLOR="31m" ## 姨妈红
|
||||
GREEN_COLOR="32m" ## 水鸭青
|
||||
YELLOW_COLOR="33m" ## 鸭屎黄
|
||||
PURPLE_COLOR="35m" ## 基佬紫
|
||||
BLUE_COLOR="36m" ## 天依蓝
|
||||
BlinkGreen_COLOR="32;5m" ## 闪烁的水鸭青
|
||||
BlinkRed_COLOR="31;5m" ## 闪烁的姨妈红
|
||||
BlickPurple_COLOR="35;5m" ## 闪烁的基佬紫
|
||||
BackRed_COLOR="41m" ## 背景红色
|
||||
|
||||
######## 颜色函数方法很精妙 ############
|
||||
colorEcho() {
|
||||
echo -e "\033[${1}${@:2}\033[0m" 1>&2
|
||||
}
|
||||
|
||||
colorEchoGreen() {
|
||||
echo -e "\033[32m${@:1}\033[0m" 1>&2
|
||||
}
|
||||
|
||||
colorEchoBlue() {
|
||||
echo -e "\033[36m${@:1}\033[0m" 1>&2
|
||||
}
|
||||
|
||||
colorEchoYellow() {
|
||||
echo -e "\033[33m${@:1}\033[0m" 1>&2
|
||||
}
|
||||
|
||||
colorEchoRed() {
|
||||
echo -e "\033[31m${@:1}\033[0m" 1>&2
|
||||
}
|
||||
|
||||
colorEchoPurple() {
|
||||
echo -e "\033[35m${@:1}\033[0m" 1>&2
|
||||
}
|
||||
|
||||
SplitLine(){
|
||||
echo ""
|
||||
}
|
||||
|
||||
SplitBlue(){
|
||||
colorEchoBlue ${SplitLine}
|
||||
echo ""
|
||||
}
|
||||
|
||||
SplitGreen(){
|
||||
colorEchoGreen ${SplitLine}
|
||||
echo ""
|
||||
}
|
||||
|
||||
SplitRed(){
|
||||
colorEchoRed ${SplitLine}
|
||||
echo ""
|
||||
}
|
||||
|
||||
SplitPurple(){
|
||||
colorEchoPurple ${SplitLine}
|
||||
echo ""
|
||||
}
|
||||
|
||||
FunctionStart() {
|
||||
colorEcho ${PURPLE_COLOR} ${SplitLine}
|
||||
if [[ $# -gt 0 ]]
|
||||
then
|
||||
colorEchoBlue " $1 "
|
||||
fi
|
||||
echo ""
|
||||
}
|
||||
|
||||
FunctionSuccess() {
|
||||
colorEcho ${GREEN_COLOR} ${SplitLine}
|
||||
echo ""
|
||||
}
|
||||
|
||||
FunctionEnd() {
|
||||
colorEcho ${BlinkGreen_COLOR} ${SplitLine}
|
||||
echo ""
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user