X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=doclib%2Fdoxygen.sh;h=7061ee4958d8b1fc814aebce796337cf412802a9;hb=25976ed67c66d30811fa0a01043e50347e9d1e69;hp=b2acf845d7173ef75cfb334c22da10148cf0fee5;hpb=86b3d95df28c60c80ac852dc8356d814788366a7;p=senf.git diff --git a/doclib/doxygen.sh b/doclib/doxygen.sh index b2acf84..7061ee4 100755 --- a/doclib/doxygen.sh +++ b/doclib/doxygen.sh @@ -11,6 +11,62 @@ do_html_cleanup() ########################################################################### +# Build absolute, normalized pathname +abspath() +{ + case "$1" in + /*) echo "$1" ;; + *) echo "`pwd`/$1" ;; + esac | sed \ + -e 's/\/\/*/\//g' \ + -e:a \ + -e 's/\/\.\(\/\|$\)/\1/g' \ + -eta \ + -e:b \ + -e 's/\/[^\/]*\/..\(\/\|$\)/\1/' \ + -etb \ + -e 's/^\(\/..\)*\(\/\|$\)/\2/' \ + -e 's/^$/\//' +} + +# Create relative path from absolute directory $1 to absolute path $2 +relpath() +{ + local src="${1#/}" + local dst="${2#/}" + while true; do + if [ -z "$src" -a -z "$dst" ]; then + echo "Internal error in relpath()" 1>&2 + exit 1 + fi + srcd="${src%%/*}" + dstd="${dst%%/*}" + if [ "$srcd" = "$dstd" ]; then + src="${src#$srcd}"; src="${src#/}" + dst="${dst#$dstd}"; dst="${dst#/}" + else + break + fi + done + rel="`echo "$src" | sed -e "s/[^\/]*/../g"`/$dst" # `" + echo "${rel%/}" +} + +# Log executed commands +cmd() +{ + echo "+" "$@" + "$@" +} + +html_cleanup() +{ + mv "$1" "${1}.orig" + do_html_cleanup <"${1}.orig" >"$1" +} + +########################################################################### + name="`basename "$0"`"; #`" base="`dirname "$0"`"; base="`cd "$base"; pwd`" #`" @@ -24,15 +80,15 @@ html="NO"; tagfile="NO"; tagfile_name=""; tagfiles=""; output_dir="doc"; html_di while true; do case "$1" in - --html) + --html) html="YES" ; shift ;; - --tagfile) + --tagfile) tagfile="YES" ; shift ;; - --tagfile-name) + --tagfile-name) tagfile_name="$2"; shift 2 ;; - --tagfiles) + --tagfiles) for f in $2; do - f="`readlink -mn "$f"`" #`" + f="`abspath "$f"`" #`" tagfiles="$tagfiles${tagfiles:+ }$f" done shift 2 @@ -74,41 +130,7 @@ if [ -f "$doxydir" ]; then doxydir="`dirname "$doxydir"`" #`" fi -doxydir="`readlink -mn "$doxydir"`" #`" - -########################################################################### - -# Create relative path from absolute directory $1 to absolute path $2 -relpath() -{ - local src="${1#/}" - local dst="${2#/}" - while true; do - srcd="${src%%/*}" - dstd="${dst%%/*}" - if [ "$srcd" = "$dstd" ]; then - src="${src#$srcd}"; src="${src#/}" - dst="${dst#$dstd}"; dst="${dst#/}" - else - break - fi - done - rel="`echo "$src" | sed -e "s/[^\/]*/../g"`/$dst" # `" - echo "${rel%/}" -} - -# Log executed commands -cmd() -{ - echo "+" "$@" - "$@" -} - -html_cleanup() -{ - mv "$1" "${1}.orig" - do_html_cleanup <"${1}.orig" >"$1" -} +doxydir="`abspath "$doxydir"`" #`" ########################################################################### @@ -122,14 +144,13 @@ if [ ! -r "SConstruct" ]; then fi TOPDIR="`pwd`"; reltopdir="`relpath "$doxydir/$output_dir/$html_dir" "$TOPDIR"`" #`" -echo "relpath $doxydir/$output_dir/$html_dir $TOPDIR -> $reltopdir" cd "$doxydir" ## Remove tagfile_name from list of tagfiles -if [ -n "$tagfile_name" ]; then - tagfile_name="`readlink -mn "$output_dir/$tagfile_name"`" #`" +if [ -n "$tagfile_name" ]; then + tagfile_name="`abspath "$output_dir/$tagfile_name"`" #`" x="$tagfiles"; tagfiles="" for f in $x; do if [ "$f" != "$tagfile_name" ]; then