Compare commits

..

No commits in common. "01e6165788f2da37a744cd8c53e293728b2bfa1c" and "aa2c6df97e0a23b9f94e916514c74a4c6af47d57" have entirely different histories.

4 changed files with 48 additions and 103 deletions

View file

@ -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="│"

View file

@ -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

View file

@ -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