Newer version of the script upstream
This commit is contained in:
parent
4b99ad9e4a
commit
2a37f62309
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#$Id$
|
#$Id$
|
||||||
#Copyright (c) 2012-2013 Pierre Pronchery <khorben@defora.org>
|
#Copyright (c) 2012-2014 Pierre Pronchery <khorben@defora.org>
|
||||||
#
|
#
|
||||||
#Redistribution and use in source and binary forms, with or without
|
#Redistribution and use in source and binary forms, with or without
|
||||||
#modification, are permitted provided that the following conditions are met:
|
#modification, are permitted provided that the following conditions are met:
|
||||||
|
@ -26,12 +26,14 @@
|
||||||
|
|
||||||
#variables
|
#variables
|
||||||
PREFIX="/usr/local"
|
PREFIX="/usr/local"
|
||||||
. "../config.sh"
|
[ -f "../config.sh" ] && . "../config.sh"
|
||||||
#executables
|
#executables
|
||||||
DEBUG="_debug"
|
DEBUG="_debug"
|
||||||
|
FOP="fop"
|
||||||
INSTALL="install -m 0644"
|
INSTALL="install -m 0644"
|
||||||
MKDIR="mkdir -m 0755 -p"
|
MKDIR="mkdir -m 0755 -p"
|
||||||
RM="rm -f"
|
RM="rm -f"
|
||||||
|
XMLLINT="xmllint"
|
||||||
XSLTPROC="xsltproc --nonet --xinclude"
|
XSLTPROC="xsltproc --nonet --xinclude"
|
||||||
|
|
||||||
|
|
||||||
|
@ -44,6 +46,53 @@ _debug()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#docbook
|
||||||
|
_docbook()
|
||||||
|
{
|
||||||
|
target="$1"
|
||||||
|
|
||||||
|
source="${target%.*}.xml"
|
||||||
|
ext="${target##*.}"
|
||||||
|
ext="${ext##.}"
|
||||||
|
case "$ext" in
|
||||||
|
html)
|
||||||
|
XSL="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"
|
||||||
|
[ -f "${target%.*}.xsl" ] && XSL="${target%.*}.xsl"
|
||||||
|
$DEBUG $XSLTPROC -o "$target" "$XSL" "$source"
|
||||||
|
;;
|
||||||
|
pdf)
|
||||||
|
XSL="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"
|
||||||
|
[ -f "${target%.*}.xsl" ] && XSL="${target%.*}.xsl"
|
||||||
|
$DEBUG $XSLTPROC -o "${target%.*}.fo" "$XSL" "$source" &&
|
||||||
|
$DEBUG $FOP -fo "${target%.*}.fo" -pdf "$target"
|
||||||
|
$RM -- "${target%.*}.fo"
|
||||||
|
;;
|
||||||
|
1|2|3|4|5|6|7|8|9)
|
||||||
|
XSL="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl"
|
||||||
|
$DEBUG $XSLTPROC -o "$target" "$XSL" "$source"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "$0: $target: Unknown type" 1>&2
|
||||||
|
return 2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "$0: $target: Could not create page" 1>&2
|
||||||
|
$RM -- "$target"
|
||||||
|
return 2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#error
|
||||||
|
_error()
|
||||||
|
{
|
||||||
|
echo "docbook.sh: $@" 1>&2
|
||||||
|
return 2
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#usage
|
#usage
|
||||||
_usage()
|
_usage()
|
||||||
{
|
{
|
||||||
|
@ -70,7 +119,7 @@ while getopts "ciuP:" name; do
|
||||||
uninstall=1
|
uninstall=1
|
||||||
;;
|
;;
|
||||||
P)
|
P)
|
||||||
PREFIX="$2"
|
PREFIX="$OPTARG"
|
||||||
;;
|
;;
|
||||||
?)
|
?)
|
||||||
_usage
|
_usage
|
||||||
|
@ -84,12 +133,17 @@ if [ $# -eq 0 ]; then
|
||||||
exit $?
|
exit $?
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#check the variables
|
||||||
|
if [ -z "$PACKAGE" ]; then
|
||||||
|
_error "The PACKAGE variable needs to be set"
|
||||||
|
exit $?
|
||||||
|
fi
|
||||||
|
|
||||||
[ -z "$DATADIR" ] && DATADIR="$PREFIX/share"
|
[ -z "$DATADIR" ] && DATADIR="$PREFIX/share"
|
||||||
[ -z "$MANDIR" ] && MANDIR="$DATADIR/man"
|
[ -z "$MANDIR" ] && MANDIR="$DATADIR/man"
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
target="$1"
|
target="$1"
|
||||||
source="${target%.*}.xml"
|
|
||||||
shift
|
shift
|
||||||
|
|
||||||
#determine the type
|
#determine the type
|
||||||
|
@ -97,12 +151,16 @@ while [ $# -gt 0 ]; do
|
||||||
ext="${ext##.}"
|
ext="${ext##.}"
|
||||||
case "$ext" in
|
case "$ext" in
|
||||||
html)
|
html)
|
||||||
XSL="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"
|
source="${target%.*}.xml"
|
||||||
[ -f "${target%.*}.xsl" ] && XSL="${target%.*}.xsl"
|
xpath="string(/refentry/refmeta/manvolnum)"
|
||||||
|
section=$($XMLLINT --xpath "$xpath" "$source")
|
||||||
|
[ $? -eq 0 -a -n "$section" ] || exit 2
|
||||||
|
instdir="$DATADIR/man/html$section"
|
||||||
|
;;
|
||||||
|
pdf)
|
||||||
instdir="$DATADIR/doc/$ext/$PACKAGE"
|
instdir="$DATADIR/doc/$ext/$PACKAGE"
|
||||||
;;
|
;;
|
||||||
1|2|3|4|5|6|7|8|9)
|
1|2|3|4|5|6|7|8|9)
|
||||||
XSL="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl"
|
|
||||||
instdir="$MANDIR/man$ext"
|
instdir="$MANDIR/man$ext"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
@ -123,16 +181,11 @@ while [ $# -gt 0 ]; do
|
||||||
#install
|
#install
|
||||||
if [ "$install" -eq 1 ]; then
|
if [ "$install" -eq 1 ]; then
|
||||||
$DEBUG $MKDIR -- "$instdir" || exit 2
|
$DEBUG $MKDIR -- "$instdir" || exit 2
|
||||||
$DEBUG $INSTALL -- "$target" "$instdir/$target" || exit 2
|
$DEBUG $INSTALL "$target" "$instdir/$target" || exit 2
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#create
|
#create
|
||||||
$DEBUG $XSLTPROC -o "$target" "$XSL" "$source"
|
|
||||||
#XXX ignore errors
|
#XXX ignore errors
|
||||||
if [ $? -ne 0 ]; then
|
_docbook "$target" || break
|
||||||
echo "$0: $target: Could not create page" 1>&2
|
|
||||||
$RM -- "$target"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
Loading…
Reference in New Issue
Block a user