Fix HTML @TOPDIR@ links
[senf.git] / doclib / dot
1 #!/bin/sh
2
3 topdir="`dirname "$0"`"; topdir="`cd "$topdir/.."; pwd`"
4 if head -4 "$1" | grep -q nomunge; then
5     dot "$@"
6     exit $?
7 fi
8 sed -i -e 's/rankdir=LR/rankdir=TB/' "$1"
9 "$topdir/doclib/dot-munge.pl" "$1"
10 unflatten -l2 -c2 -f -o "$1".unflat "$1"
11 mv "$1".unflat "$1"
12
13 case "$2" in
14     -Tpng:gd)
15     first="$1"; shift; shift
16     set -- "$first" "-Tpng" "$@"
17     ;;
18     *)
19 esac
20
21 set -e
22
23 dot "$@"
24
25 case "$4" in
26     *.png)
27     if [ -r "$4" ]; then
28         size="`pngtopnm "$4" | sed -n -e '2p'`"
29         width_a="${size% *}"
30         height_a="${size#* }"
31         if [ $width_a -gt 800 ]; then
32             for file in "${1%.dot}".*; do
33                 cp "$file" "$file.a"
34             done
35             sed -e 's/rankdir=LR/rankdir=TB/' -e t -e 's/rankdir=TB/rankdir=LR/' "$1.a" > "$1"
36             dot "$@"
37             size="`pngtopnm "$4" | sed -n -e '2p'`"
38             width_b="${size% *}"
39             height_b="${size#* }"
40             if [ $width_a -lt $width_b ]; then
41                 for file in "${1%.dot}".*.a; do
42                 mv "$file" "${file%.a}"
43                 done
44             else
45                 rm "${1%.dot}".*.a
46             fi
47         fi
48     fi
49     ;;
50     *)  ;;
51 esac