nsm/utils/logging
2025-04-25 21:21:33 +02:00

82 lines
1.7 KiB
Bash

#!/usr/bin/env bash
readonly GREEN="\033[38;5;34m"
readonly MAGENTA="\033[38;5;127m"
readonly BLUE="\033[38;5;33m"
readonly YELLOW="\033[38;5;220m"
readonly RED="\033[38;5;160m"
readonly RESET="\033[0m"
##
# description: Logs the message with the correct prefix into the console
# usage: log <type> <message>
##
function log() {
local prefix
type=${1}
print=false
shift
message=$@
case ${type} in
"s")
print=true
prefix="${GREEN}[SUCCESS]${RESET}"
;;
"d")
if [[ "${debuglevel}" -ge 4 ]]; then
print=true
fi
prefix="${MAGENTA}[DEBUG]${RESET}"
;;
"i")
if [[ "${debuglevel}" -ge 1 ]]; then
print=true
fi
prefix="${BLUE}[INFO]${RESET}"
;;
"w")
if [[ "${debuglevel}" -ge 2 ]]; then
print=true
fi
prefix="${YELLOW}[WARN]${RESET}"
;;
"e")
if [[ "${debuglevel}" -ge 3 ]]; then
print=true
fi
prefix="${RED}[ERR]${RESET}"
;;
esac
"${print}" && echo -e "${prefix} ${message}"
return 0
}
function printc() {
colour="${1}"
shift
message=$@
case "${colour}" in
"g")
echo -ne "${GREEN}${message}${RESET}\n"
;;
"m")
echo -ne "${MAGENTA}${message}${RESET}\n"
;;
"b")
echo -ne "${BLUE}${message}${RESET}\n"
;;
"y")
echo -ne "${YELLOW}${message}${RESET}\n"
;;
"r")
echo -ne "${RED}${message}${RESET}\n"
;;
*)
log e "There is no such colour available!"
exit 1
;;
esac
}