diff --git a/sh/log/log.sh b/sh/log.sh similarity index 100% rename from sh/log/log.sh rename to sh/log.sh diff --git a/sh/log/step.sh b/sh/log/step.sh deleted file mode 100644 index 34a5c64..0000000 --- a/sh/log/step.sh +++ /dev/null @@ -1,25 +0,0 @@ -# ╭───────────────╮ -# │ __ = internal │ -# ╰───────────────╯ - -# __RWX_BAR_TOP -# __RWX_BAR_MIDDLE -# __RWX_BAR_BOTTOM - -# __RWX_STEP_LEVEL -# __RWX_STEP_level_INDEX -# __RWX_STEP_level_LABEL - -# ╭─────────────╮ -# │ _ = private │ -# ╰─────────────╯ - -_RWX_BOX_DOWN_AND_HORIZONTAL="┬" -_RWX_BOX_DOWN_AND_LEFT="╮" -_RWX_BOX_DOWN_AND_RIGHT="╭" -_RWX_BOX_HORIZONTAL="─" -_RWX_BOX_LEFT="╴" -_RWX_BOX_UP_AND_HORIZONTAL="┴" -_RWX_BOX_UP_AND_LEFT="╯" -_RWX_BOX_UP_AND_RIGHT="╰" -_RWX_BOX_VERTICAL="│" diff --git a/sh/main.sh b/sh/main.sh index 802418f..2d729f3 100755 --- a/sh/main.sh +++ b/sh/main.sh @@ -1,35 +1,27 @@ #! /usr/bin/env sh -# ╭──────┬───────────╮ -# │ main │ constants │ -# ╰──────┴───────────╯ +# ╭───────────╮ +# │ constants │ +# ╰───────────╯ RWX_MAIN_NAME="main.sh" RWX_SELF_NAME="rwx" RWX_SELF_COMMAND="_${RWX_SELF_NAME}_cmd_" -# ╭──────┬───────────╮ -# │ main │ variables │ -# ╰──────┴───────────╯ +# ╭───────────╮ +# │ variables │ +# ╰───────────╯ -RWX_COMMAND_ARGUMENT="${0}" -RWX_SHELL="$(cat "/proc/${$}/comm")" - -RWX_COMMAND_NAME="$(basename "${RWX_COMMAND_ARGUMENT}" | - sed "s|^-||")" -case "${RWX_COMMAND_NAME}" in -"bash" | "dash" | "sh") unset RWX_COMMAND_NAME ;; -*) ;; -esac RWX_ROOT_SYSTEM="/usr/local/lib/${RWX_SELF_NAME}" RWX_SELF_USER="${HOME}/${RWX_SELF_NAME}" +RWX_SHELL="$(cat "/proc/${$}/comm")" RWX_MAIN_PATH="${RWX_ROOT_SYSTEM}/${RWX_MAIN_NAME}" -# ╭──────┬───────╮ -# │ main │ shell │ -# ╰──────┴───────╯ +# ╭──────╮ +# │ core │ +# ╰──────╯ # test if active shell is in interactive mode rwx_shell_interactive() { @@ -40,7 +32,7 @@ rwx_shell_interactive() { } # ╭──────┬─────╮ -# │ main │ log │ +# │ core │ log │ # ╰──────┴─────╯ __rwx_log() { @@ -54,7 +46,7 @@ __rwx_log() { } # ╭──────┬──────╮ -# │ main │ find │ +# │ core │ find │ # ╰──────┴──────╯ # find directory’s files by extension @@ -81,7 +73,7 @@ rwx_find_shell() { } # ╭──────┬─────╮ -# │ main │ ifs │ +# │ core │ ifs │ # ╰──────┴─────╯ rwx_ifs_set() { @@ -96,19 +88,20 @@ rwx_ifs_unset() { } # ╭──────┬────────╮ -# │ main │ source │ +# │ core │ source │ # ╰──────┴────────╯ rwx_source() { local path="${1}" [ -d "${path}" ] || return 1 - local count module + local count module modules + modules="$(rwx_find_shell "${path}" "${RWX_MAIN_NAME}")" + rwx_ifs_set count=0 __rwx_log "" \ ". ${path}" - rwx_ifs_set - for module in $(rwx_find_shell "${path}" "${RWX_MAIN_NAME}"); do + for module in ${modules}; do count=$((count + 1)) __rwx_log "$(printf "%02d" "${count}") ${module%.sh}" module="${path}/${module}" @@ -118,9 +111,9 @@ rwx_source() { rwx_ifs_unset } -# ╭──────╮ -# │ main │ -# ╰──────╯ +# ╭──────┬──────╮ +# │ core │ main │ +# ╰──────┴──────╯ # run initial steps rwx_main() { @@ -131,13 +124,33 @@ rwx_main() { fi # user root rwx_source "${RWX_SELF_USER}" - # context / command - if [ -n "${RWX_COMMAND_NAME}" ]; then - "${RWX_SELF_COMMAND}${RWX_COMMAND_NAME}" "${@}" - # context / shell - else - rwx_self_init - fi + # + local argument + argument="$(echo "${0}" | sed "s|^-||")" + case "${argument}" in + "bash" | \ + "dash" | \ + "sh") + # run interactive extras + if rwx_shell_interactive; then + # check format + rwx_log + rwx_shfmt "${RWX_ROOT_SYSTEM}" + # check syntax + rwx_log + rwx_shellcheck "${RWX_ROOT_SYSTEM}" + # help + rwx_log + rwx_self_help + fi + ;; + *) + local function name + name="$(basename "${argument}")" + function="${RWX_SELF_COMMAND}${name}" + "${function}" "${@}" + ;; + esac } # run main function diff --git a/sh/self.sh b/sh/self.sh index c6fad3b..41a2a0c 100644 --- a/sh/self.sh +++ b/sh/self.sh @@ -1,7 +1,3 @@ -# ╭──────┬──────────╮ -# │ self │ commands │ -# ╰──────┴──────────╯ - # get commands from root rwx_self_commands() { grep \ @@ -12,10 +8,6 @@ rwx_self_commands() { sed "s|^${RWX_SELF_COMMAND}||" } -# ╭──────┬───────────╮ -# │ self │ functions │ -# ╰──────┴───────────╯ - # get functions from root rwx_self_functions() { grep \ @@ -25,10 +17,6 @@ rwx_self_functions() { cut --delimiter "(" --fields 1 } -# ╭──────┬──────╮ -# │ self │ help │ -# ╰──────┴──────╯ - # output help message rwx_self_help() { rwx_log \ @@ -37,29 +25,6 @@ rwx_self_help() { " u__… = user" } -# ╭──────┬──────╮ -# │ self │ init │ -# ╰──────┴──────╯ - -rwx_self_init() { - # run interactive extras - if rwx_shell_interactive; then - # check format - rwx_log - rwx_shfmt "${RWX_ROOT_SYSTEM}" - # check syntax - rwx_log - rwx_shellcheck "${RWX_ROOT_SYSTEM}" - # help - rwx_log - rwx_self_help - fi -} - -# ╭──────┬─────────╮ -# │ self │ install │ -# ╰──────┴─────────╯ - _rwx_cmd_rwx_install() { rwx_self_install "${@}"; } rwx_self_install() { local target="${1}" @@ -81,10 +46,6 @@ rwx_self_install() { rwx_link "${file}" "${RWX_MAIN_PATH}" } -# ╭──────┬────────╮ -# │ self │ subset │ -# ╰──────┴────────╯ - rwx_self_subset() { local argument path for argument in "${@}"; do @@ -100,10 +61,6 @@ rwx_self_subset() { done } -# ╭──────┬───────╮ -# │ self │ write │ -# ╰──────┴───────╯ - rwx_self_write() { local target="${1}" if [ -n "${target}" ]; then