diff options
Diffstat (limited to 'doxygen/build_man.sh')
-rwxr-xr-x | doxygen/build_man.sh | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/doxygen/build_man.sh b/doxygen/build_man.sh new file mode 100755 index 0000000..304a305 --- /dev/null +++ b/doxygen/build_man.sh @@ -0,0 +1,29 @@ +#!/bin/bash -p +# We need to use bash for its associative array facility +# (`bash -p` prevents import of functions from the environment). +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 |