Compare commits
No commits in common. "7a8915682d3333a6a04215669346ae87bd9d355c" and "449958091b0e5f3a15d8568487d46fda1d90fee2" have entirely different histories.
7a8915682d
...
449958091b
2 changed files with 59 additions and 48 deletions
|
@ -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
|
||||
}
|
||||
|
|
24
sh/main.sh
24
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 <<EOF
|
||||
${modules}
|
||||
EOF
|
||||
# run code module main function with found main modules
|
||||
# run code main function
|
||||
rwx_code_main "${modules}" "${@}"
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue