Compare commits
No commits in common. "b0afca09a56e3046a2e218911eb1efac7190959e" and "6ba73ec57381f957ab140c9610c4c8f60fc98171" have entirely different histories.
b0afca09a5
...
6ba73ec573
3 changed files with 3 additions and 123 deletions
83
sh/doc.awk
83
sh/doc.awk
|
@ -1,83 +0,0 @@
|
||||||
function append(line) {
|
|
||||||
if (doc) {
|
|
||||||
doc = doc "\n"
|
|
||||||
}
|
|
||||||
doc = doc line
|
|
||||||
}
|
|
||||||
|
|
||||||
function output(name) {
|
|
||||||
print name
|
|
||||||
print doc
|
|
||||||
exit
|
|
||||||
}
|
|
||||||
|
|
||||||
function reset() {
|
|
||||||
doc = ""
|
|
||||||
}
|
|
||||||
|
|
||||||
BEGIN {
|
|
||||||
RE_ANY = "(.*)"
|
|
||||||
RE_NAME = "([_A-Za-z][_0-9A-Za-z]*)"
|
|
||||||
RE_SPACE = "[[:space:]]"
|
|
||||||
RE_SPACES = RE_SPACE "*"
|
|
||||||
|
|
||||||
RE_BEGIN = "^"
|
|
||||||
RE_END = RE_SPACES "$"
|
|
||||||
RE_FUNC = RE_SPACES "\\(" RE_SPACES "\\)" RE_SPACES "{"
|
|
||||||
|
|
||||||
RE_ALIAS = RE_BEGIN "#\\(" RE_SPACES RE_NAME RE_END
|
|
||||||
RE_DOC = RE_BEGIN "#" RE_SPACE RE_ANY RE_END
|
|
||||||
RE_FUNCTION = RE_BEGIN RE_NAME RE_FUNC RE_END
|
|
||||||
RE_MODULE = RE_BEGIN "#." RE_SPACES RE_NAME RE_END
|
|
||||||
RE_SET = RE_BEGIN RE_NAME "=.*" RE_END
|
|
||||||
RE_SHEBANG = RE_BEGIN "#!" RE_SPACES RE_ANY RE_END
|
|
||||||
|
|
||||||
alias = 0
|
|
||||||
reset()
|
|
||||||
module = 0
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
# doc
|
|
||||||
if (match($0, RE_SHEBANG, m)) {
|
|
||||||
append("shebang: " m[1])
|
|
||||||
} else if (match($0, RE_DOC, m)) {
|
|
||||||
append(m[1])
|
|
||||||
} else if (match($0, RE_ALIAS, m)) {
|
|
||||||
append("alias: " m[1])
|
|
||||||
if (m[1] == target) {
|
|
||||||
alias = 1
|
|
||||||
}
|
|
||||||
# not doc
|
|
||||||
} else if (match($0, RE_MODULE, m)) {
|
|
||||||
reset()
|
|
||||||
if (m[1] == target) {
|
|
||||||
module = 1
|
|
||||||
}
|
|
||||||
} else if (match($0, RE_SET, m)) {
|
|
||||||
if (m[1] == target) {
|
|
||||||
printf "set: "
|
|
||||||
output(m[1])
|
|
||||||
} else {
|
|
||||||
reset()
|
|
||||||
}
|
|
||||||
} else if (match($0, RE_FUNCTION, m)) {
|
|
||||||
if (alias) {
|
|
||||||
print "alias: " target
|
|
||||||
printf "function: "
|
|
||||||
output(m[1])
|
|
||||||
} else if (m[1] == target) {
|
|
||||||
printf "function: "
|
|
||||||
output(target)
|
|
||||||
} else {
|
|
||||||
reset()
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (module) {
|
|
||||||
printf "module: "
|
|
||||||
output(target)
|
|
||||||
} else {
|
|
||||||
reset()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
31
sh/main.sh
31
sh/main.sh
|
@ -1,8 +1,9 @@
|
||||||
#! /usr/bin/env sh
|
#! /usr/bin/env sh
|
||||||
|
# main module
|
||||||
|
|
||||||
# ╭──────╮
|
# ╭──────╮
|
||||||
# │ main │
|
# │ main │
|
||||||
# ╰──────╯
|
# ╰──────╯
|
||||||
# main module
|
|
||||||
|
|
||||||
# ╭──────┬───────────╮
|
# ╭──────┬───────────╮
|
||||||
# │ main │ constants │
|
# │ main │ constants │
|
||||||
|
@ -10,10 +11,8 @@
|
||||||
|
|
||||||
# name of the entrypoint file
|
# name of the entrypoint file
|
||||||
RWX_MAIN_NAME="main.sh"
|
RWX_MAIN_NAME="main.sh"
|
||||||
# name of the project itself
|
|
||||||
RWX_SELF_NAME="rwx"
|
RWX_SELF_NAME="rwx"
|
||||||
|
|
||||||
# prefix for command functions
|
|
||||||
RWX_SELF_COMMAND="_${RWX_SELF_NAME}_cmd_"
|
RWX_SELF_COMMAND="_${RWX_SELF_NAME}_cmd_"
|
||||||
|
|
||||||
# ╭──────┬───────────╮
|
# ╭──────┬───────────╮
|
||||||
|
@ -65,7 +64,6 @@ rwx_main() {
|
||||||
# ╰──────┴───────╯
|
# ╰──────┴───────╯
|
||||||
|
|
||||||
# cache source code of a module
|
# cache source code of a module
|
||||||
# inside a global code variable
|
|
||||||
rwx_cache() {
|
rwx_cache() {
|
||||||
local root="${1}"
|
local root="${1}"
|
||||||
local module="${2}"
|
local module="${2}"
|
||||||
|
@ -195,31 +193,6 @@ rwx_parse_functions() {
|
||||||
sed --silent "s|${RWX_REGEX_TARGET_FUNCTION}|\\1|p"
|
sed --silent "s|${RWX_REGEX_TARGET_FUNCTION}|\\1|p"
|
||||||
}
|
}
|
||||||
|
|
||||||
# ╭──────┬──────╮
|
|
||||||
# │ main │ test │
|
|
||||||
# ╰──────┴──────╯
|
|
||||||
|
|
||||||
rwx_test() {
|
|
||||||
local item
|
|
||||||
# TODO CODE
|
|
||||||
# TODO CONSTANTS
|
|
||||||
# TODO functions
|
|
||||||
# TODO variables
|
|
||||||
set \
|
|
||||||
"main" \
|
|
||||||
"self" \
|
|
||||||
\
|
|
||||||
"RWX_MAIN_NAME" \
|
|
||||||
\
|
|
||||||
"rwx_cache" \
|
|
||||||
\
|
|
||||||
"gsc"
|
|
||||||
for item in "${@}"; do
|
|
||||||
echo
|
|
||||||
rwx_doc "${item}"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# ╭──────┬─────╮
|
# ╭──────┬─────╮
|
||||||
# │ main │ run │
|
# │ main │ run │
|
||||||
# ╰──────┴─────╯
|
# ╰──────┴─────╯
|
||||||
|
|
12
sh/self.sh
12
sh/self.sh
|
@ -1,17 +1,7 @@
|
||||||
# self
|
# self module
|
||||||
# module
|
|
||||||
|
|
||||||
# meta doc
|
# meta doc
|
||||||
rwx_doc() {
|
rwx_doc() {
|
||||||
local name="${1}"
|
|
||||||
[ -n "${name}" ] || return
|
|
||||||
printf "%s" "${RWX_CODE}" |
|
|
||||||
awk \
|
|
||||||
-f "${RWX_ROOT_SYSTEM}/doc.awk" \
|
|
||||||
-v target="${name}"
|
|
||||||
}
|
|
||||||
|
|
||||||
rwx_doc_old() {
|
|
||||||
local name="${1}"
|
local name="${1}"
|
||||||
[ -n "${name}" ] || return
|
[ -n "${name}" ] || return
|
||||||
local constant doc func line module
|
local constant doc func line module
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue