X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=doclib%2Fdot;h=c6bdbe4e3e0f326e2f2d9f669cf3dd816de14526;hb=25976ed67c66d30811fa0a01043e50347e9d1e69;hp=fca62c89c2a8bcf01f1b696b4136cb142cbfa2b4;hpb=ae4bebbc67cd665e6eb084db22f019e784bad808;p=senf.git diff --git a/doclib/dot b/doclib/dot index fca62c8..c6bdbe4 100755 --- a/doclib/dot +++ b/doclib/dot @@ -1,5 +1,51 @@ #!/bin/sh topdir="`dirname "$0"`"; topdir="`cd "$topdir/.."; pwd`" +if head -4 "$1" | grep -q nomunge; then + dot "$@" + exit $? +fi +sed -i -e 's/rankdir=LR/rankdir=TB/' "$1" "$topdir/doclib/dot-munge.pl" "$1" -exec dot "$@" +unflatten -l2 -c2 -f -o "$1".unflat "$1" +mv "$1".unflat "$1" + +case "$2" in + -Tpng:gd) + first="$1"; shift; shift + set -- "$first" "-Tpng" "$@" + ;; + *) +esac + +set -e + +dot "$@" + +case "$4" in + *.png) + if [ -r "$4" ]; then + size="`pngtopnm "$4" | sed -n -e '2p'`" + width_a="${size% *}" + height_a="${size#* }" + if [ $width_a -gt 800 ]; then + for file in "${1%.dot}".*; do + cp "$file" "$file.a" + done + sed -e 's/rankdir=LR/rankdir=TB/' -e t -e 's/rankdir=TB/rankdir=LR/' "$1.a" > "$1" + dot "$@" + size="`pngtopnm "$4" | sed -n -e '2p'`" + width_b="${size% *}" + height_b="${size#* }" + if [ $width_a -lt $width_b ]; then + for file in "${1%.dot}".*.a; do + mv "$file" "${file%.a}" + done + else + rm "${1%.dot}".*.a + fi + fi + fi + ;; + *) ;; +esac