Skip to content

Instantly share code, notes, and snippets.

@jessestricker
Last active August 7, 2022 23:38
Show Gist options
  • Save jessestricker/7d45988986d6ced0e3e85534355c3064 to your computer and use it in GitHub Desktop.
Save jessestricker/7d45988986d6ced0e3e85534355c3064 to your computer and use it in GitHub Desktop.
A collection of reusable bash code.

bashlib

A collection of reusable bash code.

  • log: logging library
#! /usr/bin/env bash
set -o errexit -o nounset -o pipefail -o noclobber
__log_MODULE_NAME="$(basename "${BASH_SOURCE[0]}")"
readonly __log_MODULE_NAME
__log_print() {
local -r level_name=$1
local -r level_color=$2
local -r message=$3
local -r do_color_message=${4:-false}
local -r style_reset="\\e[0m"
local message_part="$message"
if [[ $do_color_message = true ]]; then
message_part="${level_color}$message${style_reset}"
fi
echo -e "${style_reset}(${__log_MODULE_NAME})${level_color}${level_name}:${style_reset} ${message_part}" >&2
}
log_debug() {
local -r message=$1
local -r level_name=" debug"
local -r level_color="\\e[37m"
__log_print "$level_name" "$level_color" "$message" true
}
log_info() {
local -r message=$1
local -r level_name=" info"
local -r level_color="\\e[36m"
__log_print "$level_name" "$level_color" "$message"
}
log_warn() {
local -r message=$1
local -r level_name=" warn"
local -r level_color="\\e[33m"
__log_print "$level_name" "$level_color" "$message"
}
log_error() {
local -r message=$1
local -r level_name=" error"
local -r level_color="\\e[31m"
__log_print "$level_name" "$level_color" "$message" true
}
__log_test() {
log_debug "pellentesque diam volutpat commodo sed"
log_info "viverra maecenas accumsan lacus vel"
log_warn "cursus mattis molestie a iaculis"
log_error "ut etiam sit amet nisl"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment