diff --git a/sh/log/log.sh b/sh/log/log.sh index 3921b8a..eddf92c 100644 --- a/sh/log/log.sh +++ b/sh/log/log.sh @@ -17,31 +17,17 @@ RWX_LOG_LEVEL_TRACE=5 # │ log │ variables │ # ╰─────┴───────────╯ -rwx_log_level=${RWX_LOG_LEVEL_INFO} +RWX_LOG_LEVEL=${RWX_LOG_LEVEL_INFO} -# ╭─────┬───────────╮ -# │ log │ functions │ -# ╰─────┴───────────╯ +# ╭─────┬─────╮ +# │ log │ log │ +# ╰─────┴─────╯ -_rwx_log() { - local prefix="${1}" - shift - [ ${#} -gt 0 ] || set -- "" - local line - for line in "${@}"; do - [ -n "${prefix}" ] && - printf "%s" "[${prefix}] " - echo "${line}" - done -} +rwx_log() { rwx_log_info "${@}"; } -rwx_log_fatal() { - local code="${1}" - shift - [ -n "${code}" ] || rwx_log_fatal 1 "No error code" - if [ "${rwx_log_level}" -ge "${RWX_LOG_LEVEL_FATAL}" ]; then - _rwx_log "FATAL" "${@}" >&2 - exit "${code}" +rwx_log_debug() { + if [ "${RWX_LOG_LEVEL}" -ge "${RWX_LOG_LEVEL_DEBUG}" ]; then + _rwx_log "[DEBUG]" "${@}" fi } @@ -49,33 +35,60 @@ rwx_log_error() { local code="${1}" shift [ -n "${code}" ] || rwx_log_fatal 1 "No error code" - if [ "${rwx_log_level}" -ge "${RWX_LOG_LEVEL_ERROR}" ]; then - _rwx_log "ERROR" "${@}" >&2 + if [ "${RWX_LOG_LEVEL}" -ge "${RWX_LOG_LEVEL_ERROR}" ]; then + _rwx_log "[ERROR]" "${@}" >&2 return "${code}" fi } -rwx_log_warn() { - if [ "${rwx_log_level}" -ge "${RWX_LOG_LEVEL_WARN}" ]; then - _rwx_log " WARN" "${@}" +rwx_log_fatal() { + local code="${1}" + shift + [ -n "${code}" ] || rwx_log_fatal 1 "No error code" + if [ "${RWX_LOG_LEVEL}" -ge "${RWX_LOG_LEVEL_FATAL}" ]; then + _rwx_log "[FATAL]" "${@}" >&2 + exit "${code}" fi } -#= rwx_log rwx_log_info() { - if [ "${rwx_log_level}" -ge "${RWX_LOG_LEVEL_INFO}" ]; then + if [ "${RWX_LOG_LEVEL}" -ge "${RWX_LOG_LEVEL_INFO}" ]; then _rwx_log "" "${@}" fi } -rwx_log_debug() { - if [ "${rwx_log_level}" -ge "${RWX_LOG_LEVEL_DEBUG}" ]; then - _rwx_log "DEBUG" "${@}" +rwx_log_trace() { + if [ "${RWX_LOG_LEVEL}" -ge "${RWX_LOG_LEVEL_TRACE}" ]; then + _rwx_log "[TRACE]" "${@}" fi } -rwx_log_trace() { - if [ "${rwx_log_level}" -ge "${RWX_LOG_LEVEL_TRACE}" ]; then - _rwx_log "TRACE" "${@}" +rwx_log_warn() { + if [ "${RWX_LOG_LEVEL}" -ge "${RWX_LOG_LEVEL_WARN}" ]; then + _rwx_log "[ WARN]" "${@}" fi } + +# TODO simplify + +_rwx_main_log() { + [ ${#} -gt 0 ] || set -- "" + local line + for line in "${@}"; do + echo "${line}" + done +} + +_rwx_log() { + local prefix="${1}" + shift + [ ${#} -gt 0 ] || set -- "" + local line + for line in "${@}"; do + if [ -n "${prefix}" ]; then + _rwx_main_log "${prefix} ${line}" + else + _rwx_main_log "${line}" + fi + done +} diff --git a/sh/main.sh b/sh/main.sh index 2039ba5..d6cc20c 100755 --- a/sh/main.sh +++ b/sh/main.sh @@ -2,32 +2,33 @@ # ╭──────╮ # │ main │ # ╰──────╯ +# main module # ╭──────┬───────────╮ # │ main │ constants │ # ╰──────┴───────────╯ -# project parent directory +# parent directory for the project RWX_MAIN_PARENT="/usr/local/lib" -# project name +# name of the project itself RWX_MAIN_NAME="rwx" -# project entrypoint module +# name of the entrypoint module RWX_MAIN_MODULE="main" -# shell modules extension +# extension of shell modules RWX_MAIN_EXTENSION="sh" # ╭──────┬───────────╮ # │ main │ variables │ # ╰──────┴───────────╯ -# project main root directory +# system root directory of the project rwx_main_root="${RWX_MAIN_PARENT}/${RWX_MAIN_NAME}" # ╭──────┬──────╮ # │ main │ find │ # ╰──────┴──────╯ -# find root directory shell modules +# find directory’s shell files #| find #| sed #| sort @@ -46,16 +47,13 @@ rwx_main_find() { # │ main │ main │ # ╰──────┴──────╯ -# run required initial steps +# run initial steps #< core/code rwx_main_main() { - local module - local modules - # find main modules + local module modules + # find & source modules modules="$(rwx_main_find "${rwx_main_root}")" - # source main modules while IFS= read -r module; do - # except currently running main module if [ "${module}" != "${RWX_MAIN_MODULE}" ]; then # shellcheck disable=SC1090 . "${rwx_main_root}/${module}.${RWX_MAIN_EXTENSION}" @@ -63,7 +61,7 @@ rwx_main_main() { done <