Compare commits

...

7 commits

Author SHA1 Message Date
333da5fb6a
code/root
All checks were successful
/ job (push) Successful in 2m58s
2025-07-09 17:16:00 +02:00
1e40941856
code/main 2025-07-09 17:05:34 +02:00
c131df87e5
main/↕ 2025-07-09 16:42:08 +02:00
225dd1380b
main/root 2025-07-09 16:35:11 +02:00
1de1cad1b3
main/parent 2025-07-09 16:23:27 +02:00
1bf5581936
main/name 2025-07-09 16:15:42 +02:00
189b4f521d
main/module 2025-07-09 16:13:16 +02:00
5 changed files with 31 additions and 32 deletions

View file

@ -6,16 +6,15 @@
# │ code │ variables │
# ╰──────┴───────────╯
# TODO variablize
# path to the entrypoint main file of the project
RWX_MAIN_PATH="${RWX_ROOT_SYSTEM}/${RWX_MAIN_NAME}.${RWX_MAIN_EXTENSION}"
rwx_code_main="${rwx_main_root}/${RWX_MAIN_MODULE}.${RWX_MAIN_EXTENSION}"
# user root directory of the project
RWX_SELF_USER="${HOME}/${RWX_SELF_NAME}"
rwx_code_root="${HOME}/${RWX_MAIN_NAME}"
# cache of all sourced code modules
_rwx_code=""
# cache for the parsing awk script
_rwx_code_awk="$(cat "${RWX_ROOT_SYSTEM}/core/code.awk")"
_rwx_code_awk="$(cat "${rwx_main_root}/core/code.awk")"
# cache for code aliases
_rwx_code_aliases=""
# cache for code aliases functions
@ -55,16 +54,16 @@ rwx_code_install() {
local command file name root
# code
if [ -n "${target}" ]; then
root="${target}${RWX_ROOT_SYSTEM}"
root="${target}${rwx_main_root}"
rwx_remove "${root}"
cp --recursive "${RWX_ROOT_SYSTEM}" "${root}"
cp --recursive "${rwx_main_root}" "${root}"
fi
# commands
root="${target}/usr/local/bin"
name="${RWX_SELF_NAME}.${RWX_MAIN_EXTENSION}"
name="${RWX_MAIN_NAME}.${RWX_MAIN_EXTENSION}"
file="${root}/${name}"
rwx_remove "${file}"
rwx_link "${file}" "${RWX_MAIN_PATH}"
rwx_link "${file}" "${rwx_code_main}"
while IFS= read -r command; do
file="${root}/${command}"
rwx_remove "${file}"
@ -73,15 +72,15 @@ rwx_code_install() {
${_rwx_code_commands}
EOF
# sh
file="${target}/etc/profile.d/${RWX_SELF_NAME}.${RWX_MAIN_EXTENSION}"
file="${target}/etc/profile.d/${RWX_MAIN_NAME}.${RWX_MAIN_EXTENSION}"
rwx_remove "${file}"
rwx_file_write "${file}" "\
export ENV=\"${RWX_MAIN_PATH}\"
export ENV=\"${rwx_code_main}\"
"
# bash
file="${target}/etc/bash.bashrc"
rwx_remove "${file}"
rwx_link "${file}" "${RWX_MAIN_PATH}"
rwx_link "${file}" "${rwx_code_main}"
}
# ╭──────┬───────╮
@ -164,10 +163,10 @@ rwx_code_variables() {
rwx_code_check() {
# check format
rwx_log
rwx_shfmt "${RWX_ROOT_SYSTEM}"
rwx_shfmt "${rwx_main_root}"
# check syntax
rwx_log
rwx_shellcheck "${RWX_ROOT_SYSTEM}"
rwx_shellcheck "${rwx_main_root}"
}
# fetch matching doc for given name
@ -228,10 +227,10 @@ rwx_code_main() {
local modules_main="${1}"
local module modules_user
# find & source modules
modules_user="$(rwx_main_find "${RWX_SELF_USER}")"
modules_user="$(rwx_main_find "${rwx_code_root}")"
while IFS= read -r module; do
# shellcheck disable=SC1090
. "${RWX_SELF_USER}/${module}.${RWX_MAIN_EXTENSION}"
. "${rwx_code_root}/${module}.${RWX_MAIN_EXTENSION}"
done <<EOF
${modules_user}
EOF
@ -239,7 +238,7 @@ EOF
while IFS= read -r module; do
# cache main module
_rwx_code="${_rwx_code}#. ${module}
$(cat "${RWX_ROOT_SYSTEM}/${module}.${RWX_MAIN_EXTENSION}")
$(cat "${rwx_main_root}/${module}.${RWX_MAIN_EXTENSION}")
"
done <<EOF
${modules_main}
@ -248,7 +247,7 @@ EOF
while IFS= read -r module; do
# cache module
_rwx_code="${_rwx_code}#. ${module}
$(cat "${RWX_SELF_USER}/${module}.${RWX_MAIN_EXTENSION}")
$(cat "${rwx_code_root}/${module}.${RWX_MAIN_EXTENSION}")
"
done <<EOF
${modules_user}

View file

@ -8,21 +8,21 @@
# │ main │ constants │
# ╰──────┴───────────╯
# parent directory for the project
RWX_MAIN_PARENT="/usr/local/lib"
# name of the project itself
RWX_MAIN_NAME="rwx"
# name of the entrypoint module
RWX_MAIN_MODULE="main"
# extension of shell modules
RWX_MAIN_EXTENSION="sh"
# name of the entrypoint module
RWX_MAIN_NAME="main"
# name of the project itself
RWX_SELF_NAME="rwx"
# ╭──────┬───────────╮
# │ main │ variables │
# ╰──────┴───────────╯
# TODO variablize
# system root directory of the project
RWX_ROOT_SYSTEM="/usr/local/lib/${RWX_SELF_NAME}"
rwx_main_root="${RWX_MAIN_PARENT}/${RWX_MAIN_NAME}"
# ╭──────┬──────╮
# │ main │ find │
@ -78,11 +78,11 @@ _rwx_main_log() {
rwx_main_main() {
local module modules
# find & source modules
modules="$(rwx_main_find "${RWX_ROOT_SYSTEM}")"
modules="$(rwx_main_find "${rwx_main_root}")"
while IFS= read -r module; do
if [ "${module}" != "${RWX_MAIN_NAME}" ]; then
if [ "${module}" != "${RWX_MAIN_MODULE}" ]; then
# shellcheck disable=SC1090
. "${RWX_ROOT_SYSTEM}/${module}.${RWX_MAIN_EXTENSION}"
. "${rwx_main_root}/${module}.${RWX_MAIN_EXTENSION}"
fi
done <<EOF
${modules}

View file

@ -10,14 +10,14 @@
rwx_self_subset() {
local argument file root
for argument in "${@}"; do
root="${RWX_ROOT_SYSTEM}/${argument}"
root="${rwx_main_root}/${argument}"
file="${argument}.${RWX_MAIN_EXTENSION}"
if [ -d "${root}" ]; then
local file
for file in $(rwx_main_find "${root}"); do
echo "${argument}/${file}.${RWX_MAIN_EXTENSION}"
done
elif [ -f "${RWX_ROOT_SYSTEM}/${file}" ]; then
elif [ -f "${rwx_main_root}/${file}" ]; then
echo "${file}"
fi
done
@ -38,7 +38,7 @@ rwx_self_write() {
files="$(rwx_self_subset "${@}")"
while IFS= read -r file; do
text="${text}
$(cat "${RWX_ROOT_SYSTEM}/${file}")
$(cat "${rwx_main_root}/${file}")
"
done <<EOF
${files}

View file

@ -43,7 +43,7 @@ RWX_COLOR_RED="$(_rwx_shell_color 32)"
# ╰───────┴───────────╯
rwx_shell_configure() {
[ -n "${ENV}" ] || ENV="${RWX_MAIN_PATH}"
[ -n "${ENV}" ] || ENV="${rwx_code_main}"
export ENV
# prompt
PS1="\$(rwx_shell_prompt \${?})"

View file

@ -41,7 +41,7 @@ rwx_test_doc() {
"main" \
"alias/git" \
\
"RWX_MAIN_NAME" \
"RWX_MAIN_MODULE" \
\
"_rwx_code" \
\