Compare commits
7 commits
0e9108999d
...
333da5fb6a
Author | SHA1 | Date | |
---|---|---|---|
333da5fb6a | |||
1e40941856 | |||
c131df87e5 | |||
225dd1380b | |||
1de1cad1b3 | |||
1bf5581936 | |||
189b4f521d |
5 changed files with 31 additions and 32 deletions
|
@ -6,16 +6,15 @@
|
||||||
# │ code │ variables │
|
# │ code │ variables │
|
||||||
# ╰──────┴───────────╯
|
# ╰──────┴───────────╯
|
||||||
|
|
||||||
# TODO variablize
|
|
||||||
# path to the entrypoint main file of the project
|
# 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
|
# 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
|
# cache of all sourced code modules
|
||||||
_rwx_code=""
|
_rwx_code=""
|
||||||
# cache for the parsing awk script
|
# 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
|
# cache for code aliases
|
||||||
_rwx_code_aliases=""
|
_rwx_code_aliases=""
|
||||||
# cache for code aliases functions
|
# cache for code aliases functions
|
||||||
|
@ -55,16 +54,16 @@ rwx_code_install() {
|
||||||
local command file name root
|
local command file name root
|
||||||
# code
|
# code
|
||||||
if [ -n "${target}" ]; then
|
if [ -n "${target}" ]; then
|
||||||
root="${target}${RWX_ROOT_SYSTEM}"
|
root="${target}${rwx_main_root}"
|
||||||
rwx_remove "${root}"
|
rwx_remove "${root}"
|
||||||
cp --recursive "${RWX_ROOT_SYSTEM}" "${root}"
|
cp --recursive "${rwx_main_root}" "${root}"
|
||||||
fi
|
fi
|
||||||
# commands
|
# commands
|
||||||
root="${target}/usr/local/bin"
|
root="${target}/usr/local/bin"
|
||||||
name="${RWX_SELF_NAME}.${RWX_MAIN_EXTENSION}"
|
name="${RWX_MAIN_NAME}.${RWX_MAIN_EXTENSION}"
|
||||||
file="${root}/${name}"
|
file="${root}/${name}"
|
||||||
rwx_remove "${file}"
|
rwx_remove "${file}"
|
||||||
rwx_link "${file}" "${RWX_MAIN_PATH}"
|
rwx_link "${file}" "${rwx_code_main}"
|
||||||
while IFS= read -r command; do
|
while IFS= read -r command; do
|
||||||
file="${root}/${command}"
|
file="${root}/${command}"
|
||||||
rwx_remove "${file}"
|
rwx_remove "${file}"
|
||||||
|
@ -73,15 +72,15 @@ rwx_code_install() {
|
||||||
${_rwx_code_commands}
|
${_rwx_code_commands}
|
||||||
EOF
|
EOF
|
||||||
# sh
|
# 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_remove "${file}"
|
||||||
rwx_file_write "${file}" "\
|
rwx_file_write "${file}" "\
|
||||||
export ENV=\"${RWX_MAIN_PATH}\"
|
export ENV=\"${rwx_code_main}\"
|
||||||
"
|
"
|
||||||
# bash
|
# bash
|
||||||
file="${target}/etc/bash.bashrc"
|
file="${target}/etc/bash.bashrc"
|
||||||
rwx_remove "${file}"
|
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() {
|
rwx_code_check() {
|
||||||
# check format
|
# check format
|
||||||
rwx_log
|
rwx_log
|
||||||
rwx_shfmt "${RWX_ROOT_SYSTEM}"
|
rwx_shfmt "${rwx_main_root}"
|
||||||
# check syntax
|
# check syntax
|
||||||
rwx_log
|
rwx_log
|
||||||
rwx_shellcheck "${RWX_ROOT_SYSTEM}"
|
rwx_shellcheck "${rwx_main_root}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# fetch matching doc for given name
|
# fetch matching doc for given name
|
||||||
|
@ -228,10 +227,10 @@ rwx_code_main() {
|
||||||
local modules_main="${1}"
|
local modules_main="${1}"
|
||||||
local module modules_user
|
local module modules_user
|
||||||
# find & source modules
|
# 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
|
while IFS= read -r module; do
|
||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1090
|
||||||
. "${RWX_SELF_USER}/${module}.${RWX_MAIN_EXTENSION}"
|
. "${rwx_code_root}/${module}.${RWX_MAIN_EXTENSION}"
|
||||||
done <<EOF
|
done <<EOF
|
||||||
${modules_user}
|
${modules_user}
|
||||||
EOF
|
EOF
|
||||||
|
@ -239,7 +238,7 @@ EOF
|
||||||
while IFS= read -r module; do
|
while IFS= read -r module; do
|
||||||
# cache main module
|
# cache main module
|
||||||
_rwx_code="${_rwx_code}#. ${module}
|
_rwx_code="${_rwx_code}#. ${module}
|
||||||
$(cat "${RWX_ROOT_SYSTEM}/${module}.${RWX_MAIN_EXTENSION}")
|
$(cat "${rwx_main_root}/${module}.${RWX_MAIN_EXTENSION}")
|
||||||
"
|
"
|
||||||
done <<EOF
|
done <<EOF
|
||||||
${modules_main}
|
${modules_main}
|
||||||
|
@ -248,7 +247,7 @@ EOF
|
||||||
while IFS= read -r module; do
|
while IFS= read -r module; do
|
||||||
# cache module
|
# cache module
|
||||||
_rwx_code="${_rwx_code}#. ${module}
|
_rwx_code="${_rwx_code}#. ${module}
|
||||||
$(cat "${RWX_SELF_USER}/${module}.${RWX_MAIN_EXTENSION}")
|
$(cat "${rwx_code_root}/${module}.${RWX_MAIN_EXTENSION}")
|
||||||
"
|
"
|
||||||
done <<EOF
|
done <<EOF
|
||||||
${modules_user}
|
${modules_user}
|
||||||
|
|
20
sh/main.sh
20
sh/main.sh
|
@ -8,21 +8,21 @@
|
||||||
# │ main │ constants │
|
# │ 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
|
# extension of shell modules
|
||||||
RWX_MAIN_EXTENSION="sh"
|
RWX_MAIN_EXTENSION="sh"
|
||||||
|
|
||||||
# name of the entrypoint module
|
|
||||||
RWX_MAIN_NAME="main"
|
|
||||||
# name of the project itself
|
|
||||||
RWX_SELF_NAME="rwx"
|
|
||||||
|
|
||||||
# ╭──────┬───────────╮
|
# ╭──────┬───────────╮
|
||||||
# │ main │ variables │
|
# │ main │ variables │
|
||||||
# ╰──────┴───────────╯
|
# ╰──────┴───────────╯
|
||||||
|
|
||||||
# TODO variablize
|
|
||||||
# system root directory of the project
|
# 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 │
|
# │ main │ find │
|
||||||
|
@ -78,11 +78,11 @@ _rwx_main_log() {
|
||||||
rwx_main_main() {
|
rwx_main_main() {
|
||||||
local module modules
|
local module modules
|
||||||
# find & source modules
|
# find & source modules
|
||||||
modules="$(rwx_main_find "${RWX_ROOT_SYSTEM}")"
|
modules="$(rwx_main_find "${rwx_main_root}")"
|
||||||
while IFS= read -r module; do
|
while IFS= read -r module; do
|
||||||
if [ "${module}" != "${RWX_MAIN_NAME}" ]; then
|
if [ "${module}" != "${RWX_MAIN_MODULE}" ]; then
|
||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1090
|
||||||
. "${RWX_ROOT_SYSTEM}/${module}.${RWX_MAIN_EXTENSION}"
|
. "${rwx_main_root}/${module}.${RWX_MAIN_EXTENSION}"
|
||||||
fi
|
fi
|
||||||
done <<EOF
|
done <<EOF
|
||||||
${modules}
|
${modules}
|
||||||
|
|
|
@ -10,14 +10,14 @@
|
||||||
rwx_self_subset() {
|
rwx_self_subset() {
|
||||||
local argument file root
|
local argument file root
|
||||||
for argument in "${@}"; do
|
for argument in "${@}"; do
|
||||||
root="${RWX_ROOT_SYSTEM}/${argument}"
|
root="${rwx_main_root}/${argument}"
|
||||||
file="${argument}.${RWX_MAIN_EXTENSION}"
|
file="${argument}.${RWX_MAIN_EXTENSION}"
|
||||||
if [ -d "${root}" ]; then
|
if [ -d "${root}" ]; then
|
||||||
local file
|
local file
|
||||||
for file in $(rwx_main_find "${root}"); do
|
for file in $(rwx_main_find "${root}"); do
|
||||||
echo "${argument}/${file}.${RWX_MAIN_EXTENSION}"
|
echo "${argument}/${file}.${RWX_MAIN_EXTENSION}"
|
||||||
done
|
done
|
||||||
elif [ -f "${RWX_ROOT_SYSTEM}/${file}" ]; then
|
elif [ -f "${rwx_main_root}/${file}" ]; then
|
||||||
echo "${file}"
|
echo "${file}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
@ -38,7 +38,7 @@ rwx_self_write() {
|
||||||
files="$(rwx_self_subset "${@}")"
|
files="$(rwx_self_subset "${@}")"
|
||||||
while IFS= read -r file; do
|
while IFS= read -r file; do
|
||||||
text="${text}
|
text="${text}
|
||||||
$(cat "${RWX_ROOT_SYSTEM}/${file}")
|
$(cat "${rwx_main_root}/${file}")
|
||||||
"
|
"
|
||||||
done <<EOF
|
done <<EOF
|
||||||
${files}
|
${files}
|
||||||
|
|
|
@ -43,7 +43,7 @@ RWX_COLOR_RED="$(_rwx_shell_color 32)"
|
||||||
# ╰───────┴───────────╯
|
# ╰───────┴───────────╯
|
||||||
|
|
||||||
rwx_shell_configure() {
|
rwx_shell_configure() {
|
||||||
[ -n "${ENV}" ] || ENV="${RWX_MAIN_PATH}"
|
[ -n "${ENV}" ] || ENV="${rwx_code_main}"
|
||||||
export ENV
|
export ENV
|
||||||
# prompt
|
# prompt
|
||||||
PS1="\$(rwx_shell_prompt \${?})"
|
PS1="\$(rwx_shell_prompt \${?})"
|
||||||
|
|
|
@ -41,7 +41,7 @@ rwx_test_doc() {
|
||||||
"main" \
|
"main" \
|
||||||
"alias/git" \
|
"alias/git" \
|
||||||
\
|
\
|
||||||
"RWX_MAIN_NAME" \
|
"RWX_MAIN_MODULE" \
|
||||||
\
|
\
|
||||||
"_rwx_code" \
|
"_rwx_code" \
|
||||||
\
|
\
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue