Compare commits

..

No commits in common. "7a8915682d3333a6a04215669346ae87bd9d355c" and "449958091b0e5f3a15d8568487d46fda1d90fee2" have entirely different histories.

2 changed files with 59 additions and 48 deletions

View file

@ -17,31 +17,17 @@ RWX_LOG_LEVEL_TRACE=5
# │ log │ variables │ # │ log │ variables │
# ╰─────┴───────────╯ # ╰─────┴───────────╯
rwx_log_level=${RWX_LOG_LEVEL_INFO} RWX_LOG_LEVEL=${RWX_LOG_LEVEL_INFO}
# ╭─────┬─────────── # ╭─────┬─────
# │ log │ functions # │ log │ log
# ╰─────┴─────────── # ╰─────┴─────
_rwx_log() { rwx_log() { rwx_log_info "${@}"; }
local prefix="${1}"
shift
[ ${#} -gt 0 ] || set -- ""
local line
for line in "${@}"; do
[ -n "${prefix}" ] &&
printf "%s" "[${prefix}] "
echo "${line}"
done
}
rwx_log_fatal() { rwx_log_debug() {
local code="${1}" if [ "${RWX_LOG_LEVEL}" -ge "${RWX_LOG_LEVEL_DEBUG}" ]; then
shift _rwx_log "[DEBUG]" "${@}"
[ -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 fi
} }
@ -49,33 +35,60 @@ rwx_log_error() {
local code="${1}" local code="${1}"
shift shift
[ -n "${code}" ] || rwx_log_fatal 1 "No error code" [ -n "${code}" ] || rwx_log_fatal 1 "No error code"
if [ "${rwx_log_level}" -ge "${RWX_LOG_LEVEL_ERROR}" ]; then if [ "${RWX_LOG_LEVEL}" -ge "${RWX_LOG_LEVEL_ERROR}" ]; then
_rwx_log "ERROR" "${@}" >&2 _rwx_log "[ERROR]" "${@}" >&2
return "${code}" return "${code}"
fi fi
} }
rwx_log_warn() { rwx_log_fatal() {
if [ "${rwx_log_level}" -ge "${RWX_LOG_LEVEL_WARN}" ]; then local code="${1}"
_rwx_log " WARN" "${@}" 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 fi
} }
#= rwx_log
rwx_log_info() { 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 "" "${@}" _rwx_log "" "${@}"
fi fi
} }
rwx_log_debug() { rwx_log_trace() {
if [ "${rwx_log_level}" -ge "${RWX_LOG_LEVEL_DEBUG}" ]; then if [ "${RWX_LOG_LEVEL}" -ge "${RWX_LOG_LEVEL_TRACE}" ]; then
_rwx_log "DEBUG" "${@}" _rwx_log "[TRACE]" "${@}"
fi fi
} }
rwx_log_trace() { rwx_log_warn() {
if [ "${rwx_log_level}" -ge "${RWX_LOG_LEVEL_TRACE}" ]; then if [ "${RWX_LOG_LEVEL}" -ge "${RWX_LOG_LEVEL_WARN}" ]; then
_rwx_log "TRACE" "${@}" _rwx_log "[ WARN]" "${@}"
fi 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
}

View file

@ -2,32 +2,33 @@
# ╭──────╮ # ╭──────╮
# │ main │ # │ main │
# ╰──────╯ # ╰──────╯
# main module
# ╭──────┬───────────╮ # ╭──────┬───────────╮
# │ main │ constants │ # │ main │ constants │
# ╰──────┴───────────╯ # ╰──────┴───────────╯
# project parent directory # parent directory for the project
RWX_MAIN_PARENT="/usr/local/lib" RWX_MAIN_PARENT="/usr/local/lib"
# project name # name of the project itself
RWX_MAIN_NAME="rwx" RWX_MAIN_NAME="rwx"
# project entrypoint module # name of the entrypoint module
RWX_MAIN_MODULE="main" RWX_MAIN_MODULE="main"
# shell modules extension # extension of shell modules
RWX_MAIN_EXTENSION="sh" RWX_MAIN_EXTENSION="sh"
# ╭──────┬───────────╮ # ╭──────┬───────────╮
# │ main │ variables │ # │ main │ variables │
# ╰──────┴───────────╯ # ╰──────┴───────────╯
# project main root directory # system root directory of the project
rwx_main_root="${RWX_MAIN_PARENT}/${RWX_MAIN_NAME}" rwx_main_root="${RWX_MAIN_PARENT}/${RWX_MAIN_NAME}"
# ╭──────┬──────╮ # ╭──────┬──────╮
# │ main │ find │ # │ main │ find │
# ╰──────┴──────╯ # ╰──────┴──────╯
# find root directory shell modules # find directory’s shell files
#| find #| find
#| sed #| sed
#| sort #| sort
@ -46,16 +47,13 @@ rwx_main_find() {
# │ main │ main │ # │ main │ main │
# ╰──────┴──────╯ # ╰──────┴──────╯
# run required initial steps # run initial steps
#< core/code #< core/code
rwx_main_main() { rwx_main_main() {
local module local module modules
local modules # find & source modules
# find main modules
modules="$(rwx_main_find "${rwx_main_root}")" modules="$(rwx_main_find "${rwx_main_root}")"
# source main modules
while IFS= read -r module; do while IFS= read -r module; do
# except currently running main module
if [ "${module}" != "${RWX_MAIN_MODULE}" ]; then if [ "${module}" != "${RWX_MAIN_MODULE}" ]; then
# shellcheck disable=SC1090 # shellcheck disable=SC1090
. "${rwx_main_root}/${module}.${RWX_MAIN_EXTENSION}" . "${rwx_main_root}/${module}.${RWX_MAIN_EXTENSION}"
@ -63,7 +61,7 @@ rwx_main_main() {
done <<EOF done <<EOF
${modules} ${modules}
EOF EOF
# run code module main function with found main modules # run code main function
rwx_code_main "${modules}" "${@}" rwx_code_main "${modules}" "${@}"
} }