]> git.pld-linux.org Git - packages/docbook2X.git/blame_incremental - docbook2X-docbook2man
- release 3
[packages/docbook2X.git] / docbook2X-docbook2man
... / ...
CommitLineData
1#!/bin/sh
2# $Revision$, $Date$
3
4# simple script that converts SGML-docbook references
5# using Steve Cheng's docbooc2man-spec perl converter
6# in case of <refentry lang="pl"> translates NAME and SYNOPSIS
7
8DIR="/usr/share/docbook2X"
9SPEC=$DIR/docbook2man-spec.pl
10MKLINKS=$DIR/manpage_makelinks.pl
11PROGNAME=`basename $0`
12
13if [ $# -eq 0 ]; then
14 echo "$PROGNAME: No input file given";
15 exit;
16fi
17if [ $# -gt 1 ]; then
18 echo "$PROGNAME: Too many arguments";
19 exit;
20fi
21
22if [ -x /usr/bin/onsgmls ]; then
23 SP=onsgmls;
24else if [ -x /usr/bin/nsgmls ]; then
25 SP=nsgmls;
26else
27 echo "$PROGNAME: SGML parser missing";
28 exit;
29fi
30fi
31
32if [ ! -f "$1" ]; then
33 echo "$PROGNAME: Unable to open file $1";
34 exit;
35fi
36
37
38if [ -f manpage.links ]; then
39 echo "$PROGNAME: There is file \`manpage.links' in current dir. "\
40 "I need to create temporary file \`manpage.links'. Please remove "\
41 "existing file."
42 exit 2;
43fi
44
45$SP <"$1" |sgmlspl $SPEC
46
47LANGM=`awk -v IGNORECASE=1 -v RS=">[^<>]*<" '/^refentry/ {if(i=index($0,"lang=")) print substr($0,i+6,2); exit}' $1`
48REFNAME=`awk -v IGNORECASE=1 -v RS="<\/?refname( [^>]*)?>" '{getline; print $0; exit}' $1`
49if [ -z "$REFNAME" ]; then
50 echo "$PROGNAME: <refname> element missing"
51 rm -f manpage.links
52 exit;
53fi
54SECTION=`awk -v IGNORECASE=1 -v RS="<\/?manvolnum( [^>]*)?>" '{getline; print $0; exit}' $1`
55MAINFILE=${REFNAME}.${SECTION}
56
57if [ ! -f "$MAINFILE" ]; then
58 echo "$PROGNAME: Failed to convert manpage";
59 rm -f manpage.links
60 exit;
61fi
62
63# print main manpage name
64echo "$MAINFILE"
65
66case "$LANGM" in
67 "pl" )
68 mv "$MAINFILE" $MAINFILE."$PROGNAME".tmp
69 cat "$MAINFILE"."$PROGNAME".tmp |sed 's/^\.SH NAME$/\.SH NAZWA/' \
70