]>
Commit | Line | Data |
---|---|---|
f328cbc3 | 1 | #!/bin/sh |
2 | # $Revision$, $Date$ | |
3 | ||
4 | # simple script that converts SGML-docbook references | |
e23d8b5f | 5 | # using Steve Cheng's docbooc2man-spec perl converter |
f328cbc3 | 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 | |
35ff5da8 | 11 | PROGNAME=`basename $0` |
f328cbc3 | 12 | |
13 | if [ $# -eq 0 ]; then | |
35ff5da8 | 14 | echo "$PROGNAME: No input file given"; |
f328cbc3 | 15 | exit; |
16 | fi | |
17 | if [ $# -gt 1 ]; then | |
35ff5da8 | 18 | echo "$PROGNAME: Too many arguments"; |
f328cbc3 | 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 | |
35ff5da8 | 27 | echo "$PROGNAME: SGML parser missing"; |
f328cbc3 | 28 | exit; |
29 | fi | |
30 | fi | |
31 | ||
35ff5da8 | 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 | ||
d0ba8439 | 45 | $SP "$1" |sgmlspl $SPEC |
f328cbc3 | 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 | |
35ff5da8 | 50 | echo "$PROGNAME: <refname> element missing" |
51 | rm -f manpage.links | |
f328cbc3 | 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 | |
35ff5da8 | 58 | echo "$PROGNAME: Failed to convert manpage"; |
59 | rm -f manpage.links | |
f328cbc3 | 60 | exit; |
61 | fi | |
62 | ||
63 | # print main manpage name | |
35ff5da8 | 64 | echo "$MAINFILE" |
f328cbc3 | 65 | |
66 | case "$LANGM" in | |
67 | "pl" ) | |
35ff5da8 | 68 | mv "$MAINFILE" $MAINFILE."$PROGNAME".tmp |
69 | cat "$MAINFILE"."$PROGNAME".tmp |sed 's/^\.SH NAME$/\.SH NAZWA/' \ | |
70 |