summaryrefslogtreecommitdiffstats
path: root/doxygen/finalize_manpages.sh
blob: 6f230b12cbc07fcc34280d8b815b74fdec546d4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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