]> git.pld-linux.org Git - packages/docbook2X.git/blob - docbook2X-docbook2man
7ad9f1265693471d8e0fae42c32ab1648c1566c7
[packages/docbook2X.git] / docbook2X-docbook2man
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
8 DIR="/usr/share/docbook2X"
9 SPEC=$DIR/docbook2man-spec.pl
10 MKLINKS=$DIR/manpage_makelinks.pl
11 PROGNAME=`basename $0`
12
13 if [ $# -eq 0 ]; then
14         echo "$PROGNAME: No input file given";
15         exit;
16 fi
17 if [ $# -gt 1 ]; then
18         echo "$PROGNAME: Too many arguments";
19         exit;
20 fi
21
22 if [ -x /usr/bin/onsgmls ]; then
23         SP=onsgmls;              
24 else if [ -x /usr/bin/nsgmls ]; then
25         SP=nsgmls;              
26 else
27         echo "$PROGNAME: SGML parser missing";
28         exit;
29 fi
30 fi
31
32 if [ ! -f "$1" ]; then
33         echo "$PROGNAME: Unable to open file $1";
34         exit;
35 fi
36
37
38 if [ -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;
43 fi
44
45 $SP "$1" |sgmlspl $SPEC
46
47 LANGM=`awk -v IGNORECASE=1 -v RS=">[^<>]*<" '/^refentry/ {if(i=index($0,"lang=")) print substr($0,i+6,2); exit}' $1`
48 REFNAME=`awk -v IGNORECASE=1 -v RS="<\/?refname( [^>]*)?>" '{getline; print $0; exit}' $1`
49 if [ -z "$REFNAME" ]; then
50         echo "$PROGNAME: <refname> element missing"
51         rm -f manpage.links
52         exit;
53 fi
54 SECTION=`awk -v IGNORECASE=1 -v RS="<\/?manvolnum( [^>]*)?>" '{getline; print $0; exit}' $1`
55 MAINFILE=${REFNAME}.${SECTION}
56
57 if [ ! -f "$MAINFILE" ]; then
58         echo "$PROGNAME: Failed to convert manpage";
59         rm -f manpage.links
60         exit;
61 fi
62
63 # print main manpage name
64 echo "$MAINFILE"
65
66 case "$LANGM" in
67     "pl" )
68         mv "$MAINFILE" $MAINFILE."$PROGNAME".tmp
69         cat "$MAINFILE"."$PROGNAME".tmp |sed 's/^\.SH NAME$/\.SH NAZWA/' \
70                         |sed 's/^\.SH SYNOPSIS$/\.SH SKĀ£ADNIA/' >"$MAINFILE";
71         rm -f "$MAINFILE"."$PROGNAME".tmp;
72         ;;
73 esac
74
75 # make man links if exist
76 $MKLINKS < manpage.links
77 awk '{print $2}' manpage.links
78
79 rm -f manpage.links
80
81
82 # $Log$
83 # Revision 1.3  2000/02/26 15:17:57  klakier
84 # - more test against missing arguments, files, etc
85 #
86 # Revision 1.2  2000/01/20 14:41:08  klakier
87 # - I forgot to commit it ... I dont remember
88 #
89 # Revision 1.1  1999/12/29 15:59:47  klakier
90 # - wrapper script for Steve Cheng's docbook2man-spec converter
91 #  
This page took 0.088311 seconds and 3 git commands to generate.