From 240c0533ecc0ea013a49e1b671fd33ad5f9fedf9 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 2 Dec 2024 01:18:40 +0100 Subject: [PATCH 1/9] mv --- sh/{ => log}/log.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sh/{ => log}/log.sh (100%) diff --git a/sh/log.sh b/sh/log/log.sh similarity index 100% rename from sh/log.sh rename to sh/log/log.sh From 8ad9ebc602b4d212071ea48d13d3eabf9d6c4cd5 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 2 Dec 2024 01:41:08 +0100 Subject: [PATCH 2/9] step/__ --- sh/log/step.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 sh/log/step.sh diff --git a/sh/log/step.sh b/sh/log/step.sh new file mode 100644 index 0000000..30c64f4 --- /dev/null +++ b/sh/log/step.sh @@ -0,0 +1,11 @@ +# ╭───────────────╮ +# │ __ = internal │ +# ╰───────────────╯ + +# __RWX_BAR_TOP +# __RWX_BAR_MIDDLE +# __RWX_BAR_BOTTOM + +# __RWX_STEP_LEVEL +# __RWX_STEP_level_INDEX +# __RWX_STEP_level_LABEL From 93d1cef6e36dd598cf777cb9319be8801427ffb0 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 2 Dec 2024 01:44:01 +0100 Subject: [PATCH 3/9] step/box --- sh/log/step.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/sh/log/step.sh b/sh/log/step.sh index 30c64f4..34a5c64 100644 --- a/sh/log/step.sh +++ b/sh/log/step.sh @@ -9,3 +9,17 @@ # __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="│" From 3495d35051bfe0a77f341d69a5c1fb16f913d26f Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 2 Dec 2024 01:53:34 +0100 Subject: [PATCH 4/9] modules --- sh/main.sh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sh/main.sh b/sh/main.sh index 2d729f3..d1b3a65 100755 --- a/sh/main.sh +++ b/sh/main.sh @@ -95,13 +95,12 @@ rwx_source() { local path="${1}" [ -d "${path}" ] || return 1 - local count module modules - modules="$(rwx_find_shell "${path}" "${RWX_MAIN_NAME}")" - rwx_ifs_set + local count module count=0 __rwx_log "" \ ". ${path}" - for module in ${modules}; do + rwx_ifs_set + for module in $(rwx_find_shell "${path}" "${RWX_MAIN_NAME}"); do count=$((count + 1)) __rwx_log "$(printf "%02d" "${count}") ${module%.sh}" module="${path}/${module}" From 1681e1567f0ed3076dae1816e23ab4de7c4c2549 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 2 Dec 2024 03:05:07 +0100 Subject: [PATCH 5/9] =?UTF-8?q?=E2=86=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sh/main.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sh/main.sh b/sh/main.sh index d1b3a65..ceb6414 100755 --- a/sh/main.sh +++ b/sh/main.sh @@ -13,9 +13,10 @@ RWX_SELF_COMMAND="_${RWX_SELF_NAME}_cmd_" # │ variables │ # ╰───────────╯ +RWX_SHELL="$(cat "/proc/${$}/comm")" + 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}" From e60e72d1da4514d7d47375c537da8629ca571159 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 2 Dec 2024 03:22:30 +0100 Subject: [PATCH 6/9] main --- sh/main.sh | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/sh/main.sh b/sh/main.sh index ceb6414..3655ca7 100755 --- a/sh/main.sh +++ b/sh/main.sh @@ -1,17 +1,17 @@ #! /usr/bin/env sh -# ╭───────────╮ -# │ constants │ -# ╰───────────╯ +# ╭──────┬───────────╮ +# │ main │ constants │ +# ╰──────┴───────────╯ RWX_MAIN_NAME="main.sh" RWX_SELF_NAME="rwx" RWX_SELF_COMMAND="_${RWX_SELF_NAME}_cmd_" -# ╭───────────╮ -# │ variables │ -# ╰───────────╯ +# ╭──────┬───────────╮ +# │ main │ variables │ +# ╰──────┴───────────╯ RWX_SHELL="$(cat "/proc/${$}/comm")" @@ -20,9 +20,9 @@ RWX_SELF_USER="${HOME}/${RWX_SELF_NAME}" RWX_MAIN_PATH="${RWX_ROOT_SYSTEM}/${RWX_MAIN_NAME}" -# ╭──────╮ -# │ core │ -# ╰──────╯ +# ╭──────┬───────╮ +# │ main │ shell │ +# ╰──────┴───────╯ # test if active shell is in interactive mode rwx_shell_interactive() { @@ -33,7 +33,7 @@ rwx_shell_interactive() { } # ╭──────┬─────╮ -# │ core │ log │ +# │ main │ log │ # ╰──────┴─────╯ __rwx_log() { @@ -47,7 +47,7 @@ __rwx_log() { } # ╭──────┬──────╮ -# │ core │ find │ +# │ main │ find │ # ╰──────┴──────╯ # find directory’s files by extension @@ -74,7 +74,7 @@ rwx_find_shell() { } # ╭──────┬─────╮ -# │ core │ ifs │ +# │ main │ ifs │ # ╰──────┴─────╯ rwx_ifs_set() { @@ -89,7 +89,7 @@ rwx_ifs_unset() { } # ╭──────┬────────╮ -# │ core │ source │ +# │ main │ source │ # ╰──────┴────────╯ rwx_source() { @@ -111,9 +111,9 @@ rwx_source() { rwx_ifs_unset } -# ╭──────┬──────╮ -# │ core │ main │ -# ╰──────┴──────╯ +# ╭──────╮ +# │ main │ +# ╰──────╯ # run initial steps rwx_main() { From 68ec08871cb599899a3e6796adc5ba32c4da036d Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 2 Dec 2024 04:02:26 +0100 Subject: [PATCH 7/9] command/argument,name --- sh/main.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sh/main.sh b/sh/main.sh index 3655ca7..6b1605d 100755 --- a/sh/main.sh +++ b/sh/main.sh @@ -13,8 +13,15 @@ RWX_SELF_COMMAND="_${RWX_SELF_NAME}_cmd_" # │ main │ 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}" From 1eb130320e77765a84c0abadcf0bebfadc30fed6 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 2 Dec 2024 15:07:55 +0100 Subject: [PATCH 8/9] context/command,shell --- sh/main.sh | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/sh/main.sh b/sh/main.sh index 6b1605d..eb938e8 100755 --- a/sh/main.sh +++ b/sh/main.sh @@ -131,13 +131,11 @@ rwx_main() { fi # user root rwx_source "${RWX_SELF_USER}" - # - local argument - argument="$(echo "${0}" | sed "s|^-||")" - case "${argument}" in - "bash" | \ - "dash" | \ - "sh") + # context / command + if [ -n "${RWX_COMMAND_NAME}" ]; then + "${RWX_SELF_COMMAND}${RWX_COMMAND_NAME}" "${@}" + # context / shell + else # run interactive extras if rwx_shell_interactive; then # check format @@ -150,14 +148,7 @@ rwx_main() { rwx_log rwx_self_help fi - ;; - *) - local function name - name="$(basename "${argument}")" - function="${RWX_SELF_COMMAND}${name}" - "${function}" "${@}" - ;; - esac + fi } # run main function From 01e6165788f2da37a744cd8c53e293728b2bfa1c Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Mon, 2 Dec 2024 15:24:27 +0100 Subject: [PATCH 9/9] self/init --- sh/main.sh | 13 +------------ sh/self.sh | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 12 deletions(-) diff --git a/sh/main.sh b/sh/main.sh index eb938e8..802418f 100755 --- a/sh/main.sh +++ b/sh/main.sh @@ -136,18 +136,7 @@ rwx_main() { "${RWX_SELF_COMMAND}${RWX_COMMAND_NAME}" "${@}" # context / shell else - # 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 + rwx_self_init fi } diff --git a/sh/self.sh b/sh/self.sh index 41a2a0c..c6fad3b 100644 --- a/sh/self.sh +++ b/sh/self.sh @@ -1,3 +1,7 @@ +# ╭──────┬──────────╮ +# │ self │ commands │ +# ╰──────┴──────────╯ + # get commands from root rwx_self_commands() { grep \ @@ -8,6 +12,10 @@ rwx_self_commands() { sed "s|^${RWX_SELF_COMMAND}||" } +# ╭──────┬───────────╮ +# │ self │ functions │ +# ╰──────┴───────────╯ + # get functions from root rwx_self_functions() { grep \ @@ -17,6 +25,10 @@ rwx_self_functions() { cut --delimiter "(" --fields 1 } +# ╭──────┬──────╮ +# │ self │ help │ +# ╰──────┴──────╯ + # output help message rwx_self_help() { rwx_log \ @@ -25,6 +37,29 @@ 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}" @@ -46,6 +81,10 @@ rwx_self_install() { rwx_link "${file}" "${RWX_MAIN_PATH}" } +# ╭──────┬────────╮ +# │ self │ subset │ +# ╰──────┴────────╯ + rwx_self_subset() { local argument path for argument in "${@}"; do @@ -61,6 +100,10 @@ rwx_self_subset() { done } +# ╭──────┬───────╮ +# │ self │ write │ +# ╰──────┴───────╯ + rwx_self_write() { local target="${1}" if [ -n "${target}" ]; then