115 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/bin/bash
 | 
						|
# Copyright Broadcom, Inc. All Rights Reserved.
 | 
						|
# SPDX-License-Identifier: APACHE-2.0
 | 
						|
#
 | 
						|
# Library for logging functions
 | 
						|
 | 
						|
# 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'
 | 
						|
 | 
						|
# 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 "+%T.%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:-false}"
 | 
						|
    # 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}/"
 | 
						|
}
 |