Compare commits
8 commits
449958091b
...
7a8915682d
Author | SHA1 | Date | |
---|---|---|---|
7a8915682d | |||
289ee65a98 | |||
a09a9f2a03 | |||
ef4879efd7 | |||
9a2603c6de | |||
aced0a1fb3 | |||
dd077b89f3 | |||
54ab72488f |
2 changed files with 65 additions and 76 deletions
117
sh/log/log.sh
117
sh/log/log.sh
|
@ -17,67 +17,11 @@ RWX_LOG_LEVEL_TRACE=5
|
|||
# │ log │ variables │
|
||||
# ╰─────┴───────────╯
|
||||
|
||||
RWX_LOG_LEVEL=${RWX_LOG_LEVEL_INFO}
|
||||
rwx_log_level=${RWX_LOG_LEVEL_INFO}
|
||||
|
||||
# ╭─────┬─────╮
|
||||
# │ log │ log │
|
||||
# ╰─────┴─────╯
|
||||
|
||||
rwx_log() { rwx_log_info "${@}"; }
|
||||
|
||||
rwx_log_debug() {
|
||||
if [ "${RWX_LOG_LEVEL}" -ge "${RWX_LOG_LEVEL_DEBUG}" ]; then
|
||||
_rwx_log "[DEBUG]" "${@}"
|
||||
fi
|
||||
}
|
||||
|
||||
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
|
||||
return "${code}"
|
||||
fi
|
||||
}
|
||||
|
||||
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_info() {
|
||||
if [ "${RWX_LOG_LEVEL}" -ge "${RWX_LOG_LEVEL_INFO}" ]; then
|
||||
_rwx_log "" "${@}"
|
||||
fi
|
||||
}
|
||||
|
||||
rwx_log_trace() {
|
||||
if [ "${RWX_LOG_LEVEL}" -ge "${RWX_LOG_LEVEL_TRACE}" ]; then
|
||||
_rwx_log "[TRACE]" "${@}"
|
||||
fi
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
# ╭─────┬───────────╮
|
||||
# │ log │ functions │
|
||||
# ╰─────┴───────────╯
|
||||
|
||||
_rwx_log() {
|
||||
local prefix="${1}"
|
||||
|
@ -85,10 +29,53 @@ _rwx_log() {
|
|||
[ ${#} -gt 0 ] || set -- ""
|
||||
local line
|
||||
for line in "${@}"; do
|
||||
if [ -n "${prefix}" ]; then
|
||||
_rwx_main_log "${prefix} ${line}"
|
||||
else
|
||||
_rwx_main_log "${line}"
|
||||
fi
|
||||
[ -n "${prefix}" ] &&
|
||||
printf "%s" "[${prefix}] "
|
||||
echo "${line}"
|
||||
done
|
||||
}
|
||||
|
||||
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_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
|
||||
return "${code}"
|
||||
fi
|
||||
}
|
||||
|
||||
rwx_log_warn() {
|
||||
if [ "${rwx_log_level}" -ge "${RWX_LOG_LEVEL_WARN}" ]; then
|
||||
_rwx_log " WARN" "${@}"
|
||||
fi
|
||||
}
|
||||
|
||||
#= rwx_log
|
||||
rwx_log_info() {
|
||||
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" "${@}"
|
||||
fi
|
||||
}
|
||||
|
||||
rwx_log_trace() {
|
||||
if [ "${rwx_log_level}" -ge "${RWX_LOG_LEVEL_TRACE}" ]; then
|
||||
_rwx_log "TRACE" "${@}"
|
||||
fi
|
||||
}
|
||||
|
|
24
sh/main.sh
24
sh/main.sh
|
@ -2,33 +2,32 @@
|
|||
# ╭──────╮
|
||||
# │ main │
|
||||
# ╰──────╯
|
||||
# main module
|
||||
|
||||
# ╭──────┬───────────╮
|
||||
# │ main │ constants │
|
||||
# ╰──────┴───────────╯
|
||||
|
||||
# parent directory for the project
|
||||
# project parent directory
|
||||
RWX_MAIN_PARENT="/usr/local/lib"
|
||||
# name of the project itself
|
||||
# project name
|
||||
RWX_MAIN_NAME="rwx"
|
||||
# name of the entrypoint module
|
||||
# project entrypoint module
|
||||
RWX_MAIN_MODULE="main"
|
||||
# extension of shell modules
|
||||
# shell modules extension
|
||||
RWX_MAIN_EXTENSION="sh"
|
||||
|
||||
# ╭──────┬───────────╮
|
||||
# │ main │ variables │
|
||||
# ╰──────┴───────────╯
|
||||
|
||||
# system root directory of the project
|
||||
# project main root directory
|
||||
rwx_main_root="${RWX_MAIN_PARENT}/${RWX_MAIN_NAME}"
|
||||
|
||||
# ╭──────┬──────╮
|
||||
# │ main │ find │
|
||||
# ╰──────┴──────╯
|
||||
|
||||
# find directory’s shell files
|
||||
# find root directory shell modules
|
||||
#| find
|
||||
#| sed
|
||||
#| sort
|
||||
|
@ -47,13 +46,16 @@ rwx_main_find() {
|
|||
# │ main │ main │
|
||||
# ╰──────┴──────╯
|
||||
|
||||
# run initial steps
|
||||
# run required initial steps
|
||||
#< core/code
|
||||
rwx_main_main() {
|
||||
local module modules
|
||||
# find & source modules
|
||||
local module
|
||||
local modules
|
||||
# find main 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}"
|
||||
|
@ -61,7 +63,7 @@ rwx_main_main() {
|
|||
done <<EOF
|
||||
${modules}
|
||||
EOF
|
||||
# run code main function
|
||||
# run code module main function with found main modules
|
||||
rwx_code_main "${modules}" "${@}"
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue