diff options
author | Jeremy Sowden <jeremy@azazel.net> | 2022-08-03 21:12:46 +0100 |
---|---|---|
committer | Florian Westphal <fw@strlen.de> | 2022-09-21 10:37:52 +0200 |
commit | d9bd111c99a054db24e3b7d0cc19cead5a593643 (patch) | |
tree | f490c11219907c44b1ef78b68cb3f499e9aa01a0 /doxygen/finalize_manpages.sh | |
parent | cd533815917043584546a6d1a4da6f163a56ad3e (diff) |
doc: move man-page sym-link shell-script into a separate file
We use `$(SHELL)` to run the script and exec bash if `$(SHELL)` is something
else. We don't hard-code the path to bash.
Signed-off-by: Jeremy Sowden <jeremy@azazel.net>
Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'doxygen/finalize_manpages.sh')
-rw-r--r-- | doxygen/finalize_manpages.sh | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/doxygen/finalize_manpages.sh b/doxygen/finalize_manpages.sh new file mode 100644 index 0000000..6f230b1 --- /dev/null +++ b/doxygen/finalize_manpages.sh @@ -0,0 +1,40 @@ +# +# We need to use bash for its associative array facility +# +[ "$BASH" ] || exec bash $0 +# +# (`bash -p` prevents import of functions from the environment). +# +set -p + +declare -A renamed_page + +main(){ set -e; cd man/man3; rm -f _* + count_real_pages + rename_real_pages + make_symlinks +} + +count_real_pages(){ page_count=0 + for i in $(ls -S) + do head -n1 $i | grep -E -q '^\.so' && break + page_count=$(($page_count + 1)) + done + first_link=$(($page_count + 1)) +} + +rename_real_pages(){ for i in $(ls -S | head -n$page_count) + do for j in $(ls -S | tail -n+$first_link) + do grep -E -q $i$ $j && break + done + mv -f $i $j + renamed_page[$i]=$j + done +} + +make_symlinks(){ for j in $(ls -S | tail -n+$first_link) + do ln -sf ${renamed_page[$(cat $j | cut -f2 -d/)]} $j + done +} + +main |