diff --git a/doc/docbook.sh b/doc/docbook.sh index 4ac88b6..fda4e2d 100755 --- a/doc/docbook.sh +++ b/doc/docbook.sh @@ -27,6 +27,7 @@ #variables PREFIX="/usr/local" [ -f "../config.sh" ] && . "../config.sh" +PROGNAME="docbook.sh" #executables DEBUG="_debug" FOP="fop" @@ -51,19 +52,25 @@ _docbook() { target="$1" - source="${target#$OBJDIR}" - source="${source%.*}.xml" + source="${target%.*}.xml" + [ -f "$source" ] || source="${source#$OBJDIR}" ext="${target##*.}" ext="${ext##.}" case "$ext" in html) XSL="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl" + [ -f "${source%.*}.xsl" ] && XSL="${source%.*}.xsl" [ -f "${target%.*}.xsl" ] && XSL="${target%.*}.xsl" - [ -f "${target%.*}.css.xml" ] && XSLTPROC="$XSLTPROC --param custom.css.source \"${target%.*}.css.xml\" --param generate.css.header 1" + if [ -f "${target%.*}.css.xml" ]; then + XSLTPROC="$XSLTPROC --param custom.css.source \"${target%.*}.css.xml\" --param generate.css.header 1" + elif [ -f "${source%.*}.css.xml" ]; then + XSLTPROC="$XSLTPROC --param custom.css.source \"${source%.*}.css.xml\" --param generate.css.header 1" + fi $DEBUG $XSLTPROC -o "$target" "$XSL" "$source" ;; pdf) XSL="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl" + [ -f "${source%.*}.xsl" ] && XSL="${source%.*}.xsl" [ -f "${target%.*}.xsl" ] && XSL="${target%.*}.xsl" $DEBUG $XSLTPROC -o "${target%.*}.fo" "$XSL" "$source" && $DEBUG $FOP -fo "${target%.*}.fo" -pdf "$target" @@ -74,13 +81,13 @@ _docbook() $DEBUG $XSLTPROC -o "$target" "$XSL" "$source" ;; *) - echo "$0: $target: Unknown type" 1>&2 + _error "$target: Unknown type" return 2 ;; esac if [ $? -ne 0 ]; then - echo "$0: $target: Could not create page" 1>&2 + _error "$target: Could not create page" $RM -- "$target" return 2 fi @@ -90,7 +97,7 @@ _docbook() #error _error() { - echo "docbook.sh: $@" 1>&2 + echo "$PROGNAME: $@" 1>&2 return 2 } @@ -98,7 +105,7 @@ _error() #usage _usage() { - echo "Usage: docbook.sh [-c|-i|-u][-P prefix] target..." 1>&2 + echo "Usage: $PROGNAME [-c|-i|-u][-P prefix] target..." 1>&2 return 1 } @@ -169,7 +176,7 @@ while [ $# -gt 0 ]; do instdir="$MANDIR/man$ext" ;; *) - echo "$0: $target: Unknown type" 1>&2 + _error "$target: Unknown type" exit 2 ;; esac