Compare commits
9 commits
aa2c6df97e
...
01e6165788
Author | SHA1 | Date | |
---|---|---|---|
01e6165788 | |||
1eb130320e | |||
68ec08871c | |||
e60e72d1da | |||
1681e1567f | |||
3495d35051 | |||
93d1cef6e3 | |||
8ad9ebc602 | |||
240c0533ec |
4 changed files with 103 additions and 48 deletions
25
sh/log/step.sh
Normal file
25
sh/log/step.sh
Normal file
|
@ -0,0 +1,25 @@
|
|||
# ╭───────────────╮
|
||||
# │ __ = 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="│"
|
83
sh/main.sh
83
sh/main.sh
|
@ -1,27 +1,35 @@
|
|||
#! /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_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}"
|
||||
|
||||
# ╭──────╮
|
||||
# │ core │
|
||||
# ╰──────╯
|
||||
# ╭──────┬───────╮
|
||||
# │ main │ shell │
|
||||
# ╰──────┴───────╯
|
||||
|
||||
# test if active shell is in interactive mode
|
||||
rwx_shell_interactive() {
|
||||
|
@ -32,7 +40,7 @@ rwx_shell_interactive() {
|
|||
}
|
||||
|
||||
# ╭──────┬─────╮
|
||||
# │ core │ log │
|
||||
# │ main │ log │
|
||||
# ╰──────┴─────╯
|
||||
|
||||
__rwx_log() {
|
||||
|
@ -46,7 +54,7 @@ __rwx_log() {
|
|||
}
|
||||
|
||||
# ╭──────┬──────╮
|
||||
# │ core │ find │
|
||||
# │ main │ find │
|
||||
# ╰──────┴──────╯
|
||||
|
||||
# find directory’s files by extension
|
||||
|
@ -73,7 +81,7 @@ rwx_find_shell() {
|
|||
}
|
||||
|
||||
# ╭──────┬─────╮
|
||||
# │ core │ ifs │
|
||||
# │ main │ ifs │
|
||||
# ╰──────┴─────╯
|
||||
|
||||
rwx_ifs_set() {
|
||||
|
@ -88,20 +96,19 @@ rwx_ifs_unset() {
|
|||
}
|
||||
|
||||
# ╭──────┬────────╮
|
||||
# │ core │ source │
|
||||
# │ main │ source │
|
||||
# ╰──────┴────────╯
|
||||
|
||||
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}"
|
||||
|
@ -111,9 +118,9 @@ rwx_source() {
|
|||
rwx_ifs_unset
|
||||
}
|
||||
|
||||
# ╭──────┬──────╮
|
||||
# │ core │ main │
|
||||
# ╰──────┴──────╯
|
||||
# ╭──────╮
|
||||
# │ main │
|
||||
# ╰──────╯
|
||||
|
||||
# run initial steps
|
||||
rwx_main() {
|
||||
|
@ -124,33 +131,13 @@ rwx_main() {
|
|||
fi
|
||||
# user root
|
||||
rwx_source "${RWX_SELF_USER}"
|
||||
#
|
||||
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
|
||||
# context / command
|
||||
if [ -n "${RWX_COMMAND_NAME}" ]; then
|
||||
"${RWX_SELF_COMMAND}${RWX_COMMAND_NAME}" "${@}"
|
||||
# context / shell
|
||||
else
|
||||
rwx_self_init
|
||||
fi
|
||||
}
|
||||
|
||||
# run main function
|
||||
|
|
43
sh/self.sh
43
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
|
||||
|
|
Loading…
Add table
Reference in a new issue