# self module # meta doc rwx_doc() { local name="${1}" [ -n "${name}" ] || return local constant doc func line module while IFS= read -r line; do case "${line}" in "#!"*) doc="" ;; "#↓"*) doc="" module="$(echo "${line}" | sed "s|#↓ \\(.*\\)|\\1|")" ;; "#"*) [ -n "${doc}" ] && doc="${doc} " doc="${doc}${line}" ;; *"="*) constant="$(echo "${line}" | sed "s|^\\(.*\\)=.*|\\1|")" if [ "${constant}" = "${name}" ]; then echo "${doc}" return else doc="" fi ;; *"("*")"*"{"*) func="$(echo "${line}" | sed "s|^\\(.*\\)() {.*|\\1|")" if [ "${func}" = "${name}" ]; then echo "${doc}" return else doc="" fi ;; *) if [ "${module}" = "${name}" ]; then echo "${doc}" return else doc="" fi ;; esac done <