From 9ba69c749bdd647aeafba3f0ed48c675900ada41 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Fri, 15 Mar 2019 22:27:43 +0100 Subject: [PATCH] :ambulance: Brings sanity to color output --- lib/color.sh | 36 ++++++++--------- lib/log.sh | 106 ++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 107 insertions(+), 35 deletions(-) diff --git a/lib/color.sh b/lib/color.sh index 51ba778..3c4d391 100644 --- a/lib/color.sh +++ b/lib/color.sh @@ -11,124 +11,124 @@ # Reset color output (background and foreground colors). # ------------------------------------------------------------------------------ function bashio::color.reset() { - printf "${__BASHIO_COLORS_RESET}" >&2 + echo -n -e "${__BASHIO_COLORS_RESET}" } # ------------------------------------------------------------------------------ # Set default output color. # ------------------------------------------------------------------------------ function bashio::color.default() { - printf "${__BASHIO_COLORS_DEFAULT}" >&2 + echo -n -e "${__BASHIO_COLORS_DEFAULT}" } # ------------------------------------------------------------------------------ # Set font output color to black. # ------------------------------------------------------------------------------ function bashio::color.black() { - printf "${__BASHIO_COLORS_BLACK}" >&2 + echo -n -e "${__BASHIO_COLORS_BLACK}" } # ------------------------------------------------------------------------------ # Set font output color to red. # ------------------------------------------------------------------------------ function bashio::color.red() { - printf "${__BASHIO_COLORS_RED}" >&2 + echo -n -e "${__BASHIO_COLORS_RED}" } # ------------------------------------------------------------------------------ # Set font output color to green. # ------------------------------------------------------------------------------ function bashio::color.green() { - printf "${__BASHIO_COLORS_GREEN}" >&2 + echo -n -e "${__BASHIO_COLORS_GREEN}" } # ------------------------------------------------------------------------------ # Set font output color to yellow. # ------------------------------------------------------------------------------ function bashio::color.yellow() { - printf "${__BASHIO_COLORS_YELLOW}" >&2 + echo -n -e "${__BASHIO_COLORS_YELLOW}" } # ------------------------------------------------------------------------------ # Set font output color to blue. # ------------------------------------------------------------------------------ function bashio::color.blue() { - printf "${__BASHIO_COLORS_BLUE}" >&2 + echo -n -e "${__BASHIO_COLORS_BLUE}" } # ------------------------------------------------------------------------------ # Set font output color to magenta. # ------------------------------------------------------------------------------ function bashio::color.magenta() { - printf "${__BASHIO_COLORS_MAGENTA}" >&2 + echo -n -e "${__BASHIO_COLORS_MAGENTA}" } # ------------------------------------------------------------------------------ # Set font output color to cyan. # ------------------------------------------------------------------------------ function bashio::color.cyan() { - printf "${__BASHIO_COLORS_CYAN}" >&2 + echo -n -e "${__BASHIO_COLORS_CYAN}" } # ------------------------------------------------------------------------------ # Set font output color background to default. # ------------------------------------------------------------------------------ function bashio::color.bg.default() { - printf "${__BASHIO_COLORS_BG_DEFAULT}" >&2 + echo -n -e "${__BASHIO_COLORS_BG_DEFAULT}" } # ------------------------------------------------------------------------------ # Set font output color background to black. # ------------------------------------------------------------------------------ function bashio::color.bg.black() { - printf "${__BASHIO_COLORS_BG_BLACK}" >&2 + echo -n -e "${__BASHIO_COLORS_BG_BLACK}" } # ------------------------------------------------------------------------------ # Set font output color background to red. # ------------------------------------------------------------------------------ function bashio::color.bg.red() { - printf "${__BASHIO_COLORS_BG_RED}" >&2 + echo -n -e "${__BASHIO_COLORS_BG_RED}" } # ------------------------------------------------------------------------------ # Set font output color background to green. # ------------------------------------------------------------------------------ function bashio::color.bg.green() { - printf "${__BASHIO_COLORS_BG_GREEN}" >&2 + echo -n -e "${__BASHIO_COLORS_BG_GREEN}" } # ------------------------------------------------------------------------------ # Set font output color background to yellow. # ------------------------------------------------------------------------------ function bashio::color.bg.yellow() { - printf "${__BASHIO_COLORS_BG_YELLOW}" >&2 + echo -n -e "${__BASHIO_COLORS_BG_YELLOW}" } # ------------------------------------------------------------------------------ # Set font output color background to blue. # ------------------------------------------------------------------------------ function bashio::color.bg.blue() { - printf "${__BASHIO_COLORS_BG_BLUE}" >&2 + echo -n -e "${__BASHIO_COLORS_BG_BLUE}" } # ------------------------------------------------------------------------------ # Set font output color background to magenta. # ------------------------------------------------------------------------------ function bashio::color.bg.magenta() { - printf "${__BASHIO_COLORS_BG_MAGENTA}" >&2 + echo -n -e "${__BASHIO_COLORS_BG_MAGENTA}" } # ------------------------------------------------------------------------------ # Set font output color background to cyan. # ------------------------------------------------------------------------------ function bashio::color.bg.cyan() { - printf "${__BASHIO_COLORS_BG_CYAN}" >&2 + echo -n -e "${__BASHIO_COLORS_BG_CYAN}" } # ------------------------------------------------------------------------------ # Set font output color background to white. # ------------------------------------------------------------------------------ function bashio::color.bg.white() { - printf "${__BASHIO_COLORS_BG_WHITE}" >&2 + echo -n -e "${__BASHIO_COLORS_BG_WHITE}" } diff --git a/lib/log.sh b/lib/log.sh index 3a8c41f..ad5d8c7 100644 --- a/lib/log.sh +++ b/lib/log.sh @@ -15,7 +15,79 @@ # ------------------------------------------------------------------------------ bashio::log() { local message=${1} - echo "${message}" >&2 + echo -e "${message}" >&2 + return "${__BASHIO_EXIT_OK}" +} + +# ------------------------------------------------------------------------------ +# Log a message to output (in red). +# +# Arguments: +# $1 Message to display +# ------------------------------------------------------------------------------ +bashio::log.red() { + local message=${1} + echo -e "${__BASHIO_COLORS_RED}${message}${__BASHIO_COLORS_RESET}" >&2 + return "${__BASHIO_EXIT_OK}" +} + +# ------------------------------------------------------------------------------ +# Log a message to output (in green). +# +# Arguments: +# $1 Message to display +# ------------------------------------------------------------------------------ +bashio::log.green() { + local message=${1} + echo -e "${__BASHIO_COLORS_GREEN}${message}${__BASHIO_COLORS_RESET}" >&2 + return "${__BASHIO_EXIT_OK}" +} + +# ------------------------------------------------------------------------------ +# Log a message to output (in yellow). +# +# Arguments: +# $1 Message to display +# ------------------------------------------------------------------------------ +bashio::log.yellow() { + local message=${1} + echo -e "${__BASHIO_COLORS_YELLOW}${message}${__BASHIO_COLORS_RESET}" >&2 + return "${__BASHIO_EXIT_OK}" +} + +# ------------------------------------------------------------------------------ +# Log a message to output (in blue). +# +# Arguments: +# $1 Message to display +# ------------------------------------------------------------------------------ +bashio::log.blue() { + local message=${1} + echo -e "${__BASHIO_COLORS_BLUE}${message}${__BASHIO_COLORS_RESET}" >&2 + return "${__BASHIO_EXIT_OK}" +} + +# ------------------------------------------------------------------------------ +# Log a message to output (in magenta). +# +# Arguments: +# $1 Message to display +# ------------------------------------------------------------------------------ +bashio::log.magenta() { + local message=${1} + echo -e "${__BASHIO_COLORS_MAGENTA}${message}${__BASHIO_COLORS_RESET}" >&2 + return "${__BASHIO_EXIT_OK}" +} + +# ------------------------------------------------------------------------------ +# Log a message to output (in cyan). +# +# Arguments: +# $1 Message to display +# ------------------------------------------------------------------------------ +bashio::log.cyan() { + local message=${1} + echo -e "${__BASHIO_COLORS_CYAN}${message}${__BASHIO_COLORS_RESET}" >&2 return "${__BASHIO_EXIT_OK}" } @@ -43,7 +115,7 @@ function bashio::log.log() { output="${output//\{MESSAGE\}/${message}}" output="${output//\{LEVEL\}/${__BASHIO_LOG_LEVELS[$level]}}" - echo "${output}" >&2 + echo -e "${output}" >&2 return "${__BASHIO_EXIT_OK}" } @@ -78,9 +150,9 @@ function bashio::log.debug() { # ------------------------------------------------------------------------------ function bashio::log.info() { local message=$* - bashio::color.cyan - bashio::log.log "${__BASHIO_LOG_LEVEL_INFO}" "${message}" - bashio::color.reset + bashio::log.log \ + "${__BASHIO_LOG_LEVEL_INFO}" \ + "${__BASHIO_COLORS_BLUE}${message}${__BASHIO_COLORS_RESET}" } # ------------------------------------------------------------------------------ @@ -91,9 +163,9 @@ function bashio::log.info() { # ------------------------------------------------------------------------------ function bashio::log.notice() { local message=$* - bashio::color.blue - bashio::log.log "${__BASHIO_LOG_LEVEL_NOTICE}" "${message}" - bashio::color.reset + bashio::log.log \ + "${__BASHIO_LOG_LEVEL_NOTICE}" \ + "${__BASHIO_COLORS_CYAN}${message}${__BASHIO_COLORS_RESET}" } # ------------------------------------------------------------------------------ @@ -104,9 +176,9 @@ function bashio::log.notice() { # ------------------------------------------------------------------------------ function bashio::log.warning() { local message=$* - bashio::color.yellow - bashio::log.log "${__BASHIO_LOG_LEVEL_WARNING}" "${message}" - bashio::color.reset + bashio::log.log \ + "${__BASHIO_LOG_LEVEL_WARNING}" \ + "${__BASHIO_COLORS_YELLOW}${message}${__BASHIO_COLORS_RESET}" } # ------------------------------------------------------------------------------ @@ -117,9 +189,9 @@ function bashio::log.warning() { # ------------------------------------------------------------------------------ function bashio::log.error() { local message=$* - bashio::color.magenta - bashio::log.log "${__BASHIO_LOG_LEVEL_ERROR}" "${message}" - bashio::color.reset + bashio::log.log \ + "${__BASHIO_LOG_LEVEL_ERROR}" \ + "${__BASHIO_COLORS_MAGENTA}${message}${__BASHIO_COLORS_RESET}" } # ------------------------------------------------------------------------------ @@ -130,7 +202,7 @@ function bashio::log.error() { # ------------------------------------------------------------------------------ function bashio::log.fatal() { local message=$* - bashio::color.red - bashio::log.log "${__BASHIO_LOG_LEVEL_FATAL}" "${message}" - bashio::color.reset + bashio::log.log \ + "${__BASHIO_LOG_LEVEL_FATAL}" \ + "${__BASHIO_COLORS_RED}${message}${__BASHIO_COLORS_RESET}" }